BigInteger.TryParse BigInteger.TryParse BigInteger.TryParse BigInteger.TryParse Method

Определение

Предпринимает попытку преобразования строкового представления числа в его эквивалент типа BigInteger и возвращает значение, позволяющее определить, успешно ли выполнено преобразование.Tries to convert the string representation of a number to its BigInteger equivalent, and returns a value that indicates whether the conversion succeeded.

Перегрузки

TryParse(ReadOnlySpan<Char>, BigInteger) TryParse(ReadOnlySpan<Char>, BigInteger) TryParse(ReadOnlySpan<Char>, BigInteger) TryParse(ReadOnlySpan<Char>, BigInteger)
TryParse(String, BigInteger) TryParse(String, BigInteger) TryParse(String, BigInteger) TryParse(String, BigInteger)

Предпринимает попытку преобразования строкового представления числа в его эквивалент типа BigInteger и возвращает значение, позволяющее определить, успешно ли выполнено преобразование.Tries to convert the string representation of a number to its BigInteger equivalent, and returns a value that indicates whether the conversion succeeded.

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, BigInteger) TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, BigInteger) TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, BigInteger) TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, BigInteger)
TryParse(String, NumberStyles, IFormatProvider, BigInteger) TryParse(String, NumberStyles, IFormatProvider, BigInteger) TryParse(String, NumberStyles, IFormatProvider, BigInteger) TryParse(String, NumberStyles, IFormatProvider, BigInteger)

Предпринимает попытку преобразования числа в формате, который определяется заданным стилем и языком и региональными параметрами, в эквивалент типа BigInteger и возвращает значение, определяющее, успешно ли выполнено преобразование.Tries to convert the string representation of a number in a specified style and culture-specific format to its BigInteger equivalent, and returns a value that indicates whether the conversion succeeded.

TryParse(ReadOnlySpan<Char>, BigInteger) TryParse(ReadOnlySpan<Char>, BigInteger) TryParse(ReadOnlySpan<Char>, BigInteger) TryParse(ReadOnlySpan<Char>, BigInteger)

public:
 static bool TryParse(ReadOnlySpan<char> value, [Runtime::InteropServices::Out] System::Numerics::BigInteger % result);
public static bool TryParse (ReadOnlySpan<char> value, out System.Numerics.BigInteger result);
static member TryParse : ReadOnlySpan<char> *  -> bool
Public Shared Function TryParse (value As ReadOnlySpan(Of Char), ByRef result As BigInteger) As Boolean

Параметры

Возвраты

TryParse(String, BigInteger) TryParse(String, BigInteger) TryParse(String, BigInteger) TryParse(String, BigInteger)

Предпринимает попытку преобразования строкового представления числа в его эквивалент типа BigInteger и возвращает значение, позволяющее определить, успешно ли выполнено преобразование.Tries to convert the string representation of a number to its BigInteger equivalent, and returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParse(System::String ^ value, [Runtime::InteropServices::Out] System::Numerics::BigInteger % result);
public static bool TryParse (string value, out System.Numerics.BigInteger result);
static member TryParse : string *  -> bool
Public Shared Function TryParse (value As String, ByRef result As BigInteger) As Boolean

Параметры

value
String String String String

Строковое представление числа.The string representation of a number.

result
BigInteger BigInteger BigInteger BigInteger

После выполнения этого метода содержит эквивалент типа BigInteger числа, содержащегося в параметре value, или нуль (0), если выполнить преобразование не удалось.When this method returns, contains the BigInteger equivalent to the number that is contained in value, or zero (0) if the conversion fails. Преобразование не удается выполнить, если значение параметра value равно null или задано в неверном формате,The conversion fails if the value parameter is null or is not of the correct format. Этот параметр передается неинициализированным.This parameter is passed uninitialized.

Возвраты

Значение true, если параметр value успешно преобразован; в противном случае — значение false.true if value was converted successfully; otherwise, false.

Исключения

Примеры

В следующем примере используется TryParse(String, BigInteger) метод для создания экземпляра два BigInteger объектов.The following example uses the TryParse(String, BigInteger) method to instantiate two BigInteger objects. В случае успешного выполнения преобразования умножает каждый объект на другое, а затем вызывает Compare метод, чтобы определить связь между двумя объектами.If the conversions succeed, it multiplies each object by another number and then calls the Compare method to determine the relationship between the two objects.

BigInteger number1, number2;
bool succeeded1 = BigInteger.TryParse("-12347534159895123", out number1);
bool succeeded2 = BigInteger.TryParse("987654321357159852", out number2);
if (succeeded1 && succeeded2)
{
   number1 *= 3;
   number2 *= 2;
   switch (BigInteger.Compare(number1, number2))
   {
      case -1:
         Console.WriteLine("{0} is greater than {1}.", number2, number1);
         break;
      case 0:
         Console.WriteLine("{0} is equal to {1}.", number1, number2);
         break;
      case 1:
         Console.WriteLine("{0} is greater than {1}.", number1, number2);
         break;
   }      
}
else
{
   if (! succeeded1) 
      Console.WriteLine("Unable to initialize the first BigInteger value.");

   if (! succeeded2)
      Console.WriteLine("Unable to initialize the second BigInteger value.");
}
// The example displays the following output:
//      1975308642714319704 is greater than -37042602479685369.
Dim number1 As BigInteger = BigInteger.Zero
Dim number2 As BigInteger = BigInteger.Zero
Dim succeeded1 As Boolean = BigInteger.TryParse("-12347534159895123", number1)
Dim succeeded2 As Boolean = BigInteger.TryParse("987654321357159852", number2)
If succeeded1 AndAlso succeeded2
   number1 *= 3
   number2 *= 2
   Select Case BigInteger.Compare(number1, number2)
      Case -1
         Console.WriteLine("{0} is greater than {1}.", number2, number1)
      Case 0
         Console.WriteLine("{0} is equal to {1}.", number1, number2)
      Case 1
         Console.WriteLine("{0} is greater than {1}.", number1, number2)
   End Select      
Else
   If Not succeeded1 Then 
      Console.WriteLine("Unable to initialize the first BigInteger value.")
   End If
   If Not succeeded2 Then
      Console.WriteLine("Unable to initialize the second BigInteger value.")
   
   End If
End If
' The example displays the following output:
'      1975308642714319704 is greater than -37042602479685369.

Комментарии

TryParse(String, BigInteger) Метод аналогичен Parse(String) за тем исключением, что он не создания исключения, если преобразование завершается неудачей.The TryParse(String, BigInteger) method is like the Parse(String) method, except that it does not throw an exception if the conversion fails. Этот метод исключает необходимость использовать обработку исключений для проверки FormatException Если value является недопустимым и не может быть успешно обработан.This method eliminates the need to use exception handling to test for a FormatException if value is invalid and cannot be successfully parsed.

value Параметр должен иметь строковое представление десятичного числа в следующей форме:The value parameter should be the string representation of a decimal number in the following form:

[ws] [входа]цифр[ws][ws][sign]digits[ws]

Элементы в квадратных скобках ([и]) являются необязательными.Elements in square brackets ([ and ]) are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
wsws Необязательный пробел.Optional white space.
signsign Необязательный знак.An optional sign. Допустимые знаки определяются по NumberFormatInfo.NegativeSign и NumberFormatInfo.PositiveSign свойства текущего языка и региональных параметров.Valid sign characters are determined by the NumberFormatInfo.NegativeSign and NumberFormatInfo.PositiveSign properties of the current culture.
digitsdigits Последовательность десятичных цифр от 0 до 9.A sequence of decimal digits ranging from 0 to 9.

Примечание

Строкой, указанной параметром value параметр не может содержать разделители групп или десятичного разделителя, и он не может иметь дробную часть.The string specified by the value parameter cannot contain any group separators or decimal separator, and it cannot have a decimal portion.

value Параметр интерпретируется с использованием NumberStyles.Integer стиля.The value parameter is interpreted by using the NumberStyles.Integer style. Помимо десятичных разрядов допускаются только начальные и конечные пробелы, со знаком в начале.In addition to the decimal digits, only leading and trailing spaces with a leading sign are allowed. Чтобы явно определить элементы стиля с языком и региональными параметрами сведения об особенностях форматирования, могут быть представлены в value, вызовите TryParse(String, NumberStyles, IFormatProvider, BigInteger) метод.To explicitly define the style elements with the culture-specific formatting information that can be present in value, call the TryParse(String, NumberStyles, IFormatProvider, BigInteger) method.

value Анализируется с использованием сведений о форматировании в NumberFormatInfo объект для текущего языка и региональных параметров.The value parameter is parsed by using the formatting information in a NumberFormatInfo object for the current culture. Дополнительные сведения см. в разделе NumberFormatInfo.CurrentInfo.For more information, see NumberFormatInfo.CurrentInfo.

Эта перегрузка интерпретирует все цифры value параметра в виде десятичных цифр.This overload interprets all digits in the value parameter as decimal digits. Чтобы проанализировать строковое представление шестнадцатеричного числа, вызовите TryParse(String, NumberStyles, IFormatProvider, BigInteger) перегрузку.To parse the string representation of a hexadecimal number, call the TryParse(String, NumberStyles, IFormatProvider, BigInteger) overload instead.

Дополнительно

TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, BigInteger) TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, BigInteger) TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, BigInteger) TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, BigInteger)

public:
 static bool TryParse(ReadOnlySpan<char> value, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Numerics::BigInteger % result);
public static bool TryParse (ReadOnlySpan<char> value, System.Globalization.NumberStyles style, IFormatProvider provider, out System.Numerics.BigInteger result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider *  -> bool
Public Shared Function TryParse (value As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As BigInteger) As Boolean

Параметры

Возвраты

TryParse(String, NumberStyles, IFormatProvider, BigInteger) TryParse(String, NumberStyles, IFormatProvider, BigInteger) TryParse(String, NumberStyles, IFormatProvider, BigInteger) TryParse(String, NumberStyles, IFormatProvider, BigInteger)

Предпринимает попытку преобразования числа в формате, который определяется заданным стилем и языком и региональными параметрами, в эквивалент типа BigInteger и возвращает значение, определяющее, успешно ли выполнено преобразование.Tries to convert the string representation of a number in a specified style and culture-specific format to its BigInteger equivalent, and returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParse(System::String ^ value, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::Numerics::BigInteger % result);
public static bool TryParse (string value, System.Globalization.NumberStyles style, IFormatProvider provider, out System.Numerics.BigInteger result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider *  -> bool
Public Shared Function TryParse (value As String, style As NumberStyles, provider As IFormatProvider, ByRef result As BigInteger) As Boolean

Параметры

value
String String String String

Строковое представление числа.The string representation of a number. Строка интерпретируется с использованием стиля, указанного в style.The string is interpreted using the style specified by style.

style
NumberStyles NumberStyles NumberStyles NumberStyles

Побитовое сочетание значений перечисления, обозначающих элементы стиля, которые могут быть представлены в параметре value.A bitwise combination of enumeration values that indicates the style elements that can be present in value. Обычно указывается значение Integer.A typical value to specify is Integer.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Объект, который предоставляет сведения о форматировании параметра value в зависимости от языка и региональных параметров.An object that supplies culture-specific formatting information about value.

result
BigInteger BigInteger BigInteger BigInteger

После выполнения этого метода содержит эквивалент типа BigInteger числа, содержащегося в параметре value, или Zero, если выполнить преобразование не удалось.When this method returns, contains the BigInteger equivalent to the number that is contained in value, or Zero if the conversion failed. Преобразование не удается выполнить, если параметр value имеет значение null или имеет формат, несовместимый со значением style,The conversion fails if the value parameter is null or is not in a format that is compliant with style. Этот параметр передается неинициализированным.This parameter is passed uninitialized.

Возвраты

Значение true, если параметр value успешно преобразован; в противном случае — значение false.true if the value parameter was converted successfully; otherwise, false.

Исключения

style не является значением NumberStyles.style is not a NumberStyles value.

-или--or- style включает флаги AllowHexSpecifier и HexNumber вместе с другим значениями.style includes the AllowHexSpecifier or HexNumber flag along with another value.

Примеры

В следующем примере происходит несколько вызовов TryParse(String, NumberStyles, IFormatProvider, BigInteger) метода с использованием различных сочетаний значений для style и provider параметров.The following example makes some calls to the TryParse(String, NumberStyles, IFormatProvider, BigInteger) method using various combinations of values for the style and provider parameters.

string numericString;
BigInteger number = BigInteger.Zero;

// Call TryParse with default values of style and provider.
numericString = "  -300   ";
if (BigInteger.TryParse(numericString, NumberStyles.Integer, 
                       null, out number))
   Console.WriteLine("'{0}' was converted to {1}.", 
                     numericString, number);                    
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.", 
                     numericString);

// Call TryParse with the default value of style and 
// a provider supporting the tilde as negative sign.
numericString = "  -300   ";
if (BigInteger.TryParse(numericString, NumberStyles.Integer,
                       new BigIntegerFormatProvider(), out number))
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number);                             
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString);

// Call TryParse with only AllowLeadingWhite and AllowTrailingWhite.
// Method returns false because of presence of negative sign.
numericString = "  -500   ";
if (BigInteger.TryParse(numericString,
                        NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite,
                        new BigIntegerFormatProvider(), out number))
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number);                             
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString);

// Call TryParse with AllowHexSpecifier and a hex value.
numericString = "F14237FFAAC086455192";
if (BigInteger.TryParse(numericString,
                        NumberStyles.AllowHexSpecifier,
                        null, out number))
   Console.WriteLine("'{0}' was converted to {1} (0x{1:x}).",
                     numericString, number);                             
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString);

// Call TryParse with AllowHexSpecifier and a negative hex value.
// Conversion fails because of presence of negative sign.
numericString = "-3af";
if (BigInteger.TryParse(numericString, NumberStyles.AllowHexSpecifier,
                       new BigIntegerFormatProvider(), out number))
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number);       
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString);

// Call TryParse with only NumberStyles.None.
// Conversion fails because of presence of white space and sign.
numericString = " -300 ";
if (BigInteger.TryParse(numericString, NumberStyles.None,
                       new BigIntegerFormatProvider(), out number))
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number);         
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString);
                                            
// Call TryParse with NumberStyles.Any and a provider for the fr-FR culture.
// Conversion fails because the string is formatted for the en-US culture.
numericString = "9,031,425,666,123,546.00";
if (BigInteger.TryParse(numericString, NumberStyles.Any,
                       new CultureInfo("fr-FR"), out number))
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number);                     
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString);

// Call TryParse with NumberStyles.Any and a provider for the fr-FR culture.
// Conversion succeeds because the string is properly formatted 
// For the fr-FR culture.
numericString = "9 031 425 666 123 546,00";
if (BigInteger.TryParse(numericString, NumberStyles.Any,
                       new CultureInfo("fr-FR"), out number))
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number);                 
else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString);
// The example displays the following output:
//    '  -300   ' was converted to -300.
//    Conversion of '  -300   ' to a BigInteger failed.
//    Conversion of '  -500   ' to a BigInteger failed.
//    'F14237FFAAC086455192' was converted to -69613977002644837412462 (0xf14237ffaac086455192).
//    Conversion of '-3af' to a BigInteger failed.
//    Conversion of ' -300 ' to a BigInteger failed.
//    Conversion of '9,031,425,666,123,546.00' to a BigInteger failed.
//    '9 031 425 666 123 546,00' was converted to 9031425666123546.      
Dim numericString As String
Dim number As BigInteger = BigInteger.Zero

' Call TryParse with default values of style and provider.
numericString = "  -300   "
If BigInteger.TryParse(numericString, NumberStyles.Integer,
                       Nothing, number) Then
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If                                             

' Call TryParse with the default value of style and 
' a provider supporting the tilde as negative sign.
numericString = "  -300   "
If BigInteger.TryParse(numericString, NumberStyles.Integer,
                       New BigIntegerFormatProvider(), number) Then
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If                                             

' Call TryParse with only AllowLeadingWhite and AllowTrailingWhite.
' Method returns false because of presence of negative sign.
numericString = "  -500   "
If BigInteger.TryParse(numericString,
                    NumberStyles.AllowLeadingWhite Or NumberStyles.AllowTrailingWhite,
                    New BigIntegerFormatProvider(), number) Then
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If                                             

' Call TryParse with AllowHexSpecifier and a hex value.
numericString = "F14237FFAAC086455192"
If BigInteger.TryParse(numericString,
                    NumberStyles.AllowHexSpecifier,
                    Nothing, number) Then
   Console.WriteLine("'{0}' was converted to {1} (0x{1:x}).",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If                                             

' Call TryParse with AllowHexSpecifier and a negative hex value.
' Conversion fails because of presence of negative sign.
numericString = "-3af"
If BigInteger.TryParse(numericString, NumberStyles.AllowHexSpecifier,
                       New BigIntegerFormatProvider(), number) Then
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If                                             

' Call TryParse with only NumberStyles.None.
' Conversion fails because of presence of white space and sign.
numericString = " -300 "
If BigInteger.TryParse(numericString, NumberStyles.None,
                       New BigIntegerFormatProvider(), number) Then
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If 
                                            
' Call TryParse with NumberStyles.Any and a provider for the fr-FR culture.
' Conversion fails because the string is formatted for the en-US culture.
numericString = "9,031,425,666,123,546.00"
If BigInteger.TryParse(numericString, NumberStyles.Any,
                       New CultureInfo("fr-FR"), number) Then
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If

' Call TryParse with NumberStyles.Any and a provider for the fr-FR culture.
' Conversion succeeds because the string is properly formatted 
' For the fr-FR culture.
numericString = "9 031 425 666 123 546,00"
If BigInteger.TryParse(numericString, NumberStyles.Any,
                       New CultureInfo("fr-FR"), number) Then
   Console.WriteLine("'{0}' was converted to {1}.",
                     numericString, number)                             
Else
   Console.WriteLine("Conversion of '{0}' to a BigInteger failed.",
                     numericString)
End If
' The example displays the following output:
'    '  -300   ' was converted to -300.
'    Conversion of '  -300   ' to a BigInteger failed.
'    Conversion of '  -500   ' to a BigInteger failed.
'    'F14237FFAAC086455192' was converted to -69613977002644837412462 (0xf14237ffaac086455192).
'    Conversion of '-3af' to a BigInteger failed.
'    Conversion of ' -300 ' to a BigInteger failed.
'    Conversion of '9,031,425,666,123,546.00' to a BigInteger failed.
'    '9 031 425 666 123 546,00' was converted to 9031425666123546.      

Ряд отдельные вызовы, чтобы TryParse(String, NumberStyles, IFormatProvider, BigInteger) метод передать экземпляр из следующих BigIntegerFormatProvider класс, который определяет как отрицательный знак тильды (~).A number of the individual calls to the TryParse(String, NumberStyles, IFormatProvider, BigInteger) method pass an instance of the following BigIntegerFormatProvider class, which defines a tilde (~) as the negative sign.

public class BigIntegerFormatProvider : IFormatProvider
{
   public object GetFormat(Type formatType) 
   {
      if (formatType == typeof(NumberFormatInfo)) 
      {
         NumberFormatInfo numberFormat = new NumberFormatInfo();
         numberFormat.NegativeSign = "~";
         return numberFormat;
      }
      else
      {
         return null;
      }      
   }
}
Public Class BigIntegerFormatProvider : Implements IFormatProvider
   Public Function GetFormat(formatType As Type) As Object _
                            Implements IFormatProvider.GetFormat
      If formatType Is GetType(NumberFormatInfo) Then
         Dim numberFormat As New NumberFormatInfo
         numberFormat.NegativeSign = "~"
         Return numberFormat
      Else
         Return Nothing
      End If      
   End Function
End Class

Комментарии

TryParse(String, NumberStyles, IFormatProvider, BigInteger) Метод аналогичен Parse(String, NumberStyles, IFormatProvider) за тем исключением, что он не создания исключения, если преобразование завершается неудачей.The TryParse(String, NumberStyles, IFormatProvider, BigInteger) method is like the Parse(String, NumberStyles, IFormatProvider) method, except that it does not throw an exception if the conversion fails. Этот метод исключает необходимость использовать обработку исключений для проверки FormatException Если value является недопустимым и не может быть успешно обработан.This method eliminates the need to use exception handling to test for a FormatException if value is invalid and cannot be parsed successfully.

style Параметр определяет элементы стиля (например, пробелы и знак плюс или минус), которые разрешены в value параметр для успешного выполнения операции синтаксического анализа.The style parameter defines the style elements (such as white space or a positive or negative sign) that are allowed in the value parameter for the parse operation to succeed. Он должен представлять собой сочетание битовых флагов из NumberStyles перечисления.It must be a combination of bit flags from the NumberStyles enumeration. В зависимости от значения style, value параметр может содержать следующие элементы:Depending on the value of style, the value parameter may include the following elements:

[ws] [$] [входа] [цифр,]цифр[. цифры_дробной_части] [E [входа]экспоненциальные_цифры] [ws][ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]

Если style включает параметр AllowHexSpecifier, value параметр может содержать следующие элементы:If the style parameter includes AllowHexSpecifier, the value parameter may include the following elements:

[ws]hexdigits[ws][ws]hexdigits[ws]

Элементы в квадратных скобках ([и]) являются необязательными.Elements in square brackets ([ and ]) are optional. Каждый из элементов описан в таблице ниже.The following table describes each element.

ЭлементElement ОписаниеDescription
wsws Необязательный пробел.Optional white space. Пробелы могут отображаться в начале value Если style включает в себя NumberStyles.AllowLeadingWhite флаг, или в конце value Если style включает в себя NumberStyles.AllowTrailingWhite флаг.White space can appear at the start of value if style includes the NumberStyles.AllowLeadingWhite flag, or at the end of value if style includes the NumberStyles.AllowTrailingWhite flag.
$ Символ валюты.A culture-specific currency symbol. Его положение в строке определяется CurrencyPositivePattern свойство NumberFormatInfo объект, возвращаемый GetFormat метод provider параметра.Its position in the string is defined by the CurrencyPositivePattern property of the NumberFormatInfo object returned by the GetFormat method of the provider parameter. Символ валюты может встречаться в value Если style включает в себя NumberStyles.AllowCurrencySymbol флаг.The currency symbol can appear in value if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign Необязательный знак.An optional sign. Знак может располагаться в начале value Если style включает в себя NumberStyles.AllowLeadingSign флаг и может отображаться в конце value Если style включает в себя NumberStyles.AllowTrailingSign флаг.The sign can appear at the start of value if style includes the NumberStyles.AllowLeadingSign flag, and it can appear at the end of value if style includes the NumberStyles.AllowTrailingSign flag. Можно использовать скобки в value указывает отрицательное значение, если style включает в себя NumberStyles.AllowParentheses флаг.Parentheses can be used in value to indicate a negative value if style includes the NumberStyles.AllowParentheses flag.
digitsdigits Последовательность цифр от 0 до 9.A sequence of digits from 0 through 9.
,, Разделитель групп, зависящий от языка и региональных параметров.A culture-specific group separator. Разделитель групп, языка и региональных параметров, заданные provider могут присутствовать в value Если style включает в себя NumberStyles.AllowThousands флаг.The group separator of the culture specified by provider can appear in value if style includes the NumberStyles.AllowThousands flag.
.. Символ десятичной запятой для конкретного языка и региональных параметров.A culture-specific decimal point symbol. Символ десятичной запятой, языка и региональных параметров, заданные provider могут присутствовать в value Если style включает в себя NumberStyles.AllowDecimalPoint флаг.The decimal point symbol of the culture specified by provider can appear in value if style includes the NumberStyles.AllowDecimalPoint flag.
fractional_digitsfractional_digits Один или несколько вхождений цифры 0.One or more occurrences of the digit 0. Дробных разрядов может встречаться в value только если style включает в себя NumberStyles.AllowDecimalPoint флаг.Fractional digits can appear in value only if style includes the NumberStyles.AllowDecimalPoint flag.
EE «E» или «E» знаком, который указывает, что значение будет представлено в экспоненциальной нотации (научный).The "e" or "E" character, which indicates that the value is represented in exponential (scientific) notation. value Параметр может представлять число в экспоненциальном представлении, если style включает в себя NumberStyles.AllowExponent флаг.The value parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
exponential_digitsexponential_digits Последовательность цифр от 0 до 9.A sequence of digits from 0 through 9. value Параметр может представлять число в экспоненциальном представлении, если style включает в себя NumberStyles.AllowExponent флаг.The value parameter can represent a number in exponential notation if style includes the NumberStyles.AllowExponent flag.
hexdigitshexdigits Последовательность шестнадцатеричных цифр от 0 до f или от 0 до F.A sequence of hexadecimal digits from 0 through f, or 0 through F.

Примечание

Символы (от U + 0000) завершающий NUL в s пропускаются операцией анализа, независимо от значения style аргумент.Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

Строка только десятичных знаков (который соответствует NumberStyles.None флаг) всегда успешно выполняет синтаксический анализ.A string with decimal digits only (which corresponds to the NumberStyles.None flag) always parses successfully. Большинство оставшихся NumberStyles члены управляют элементами, которые могут присутствовать, но необязательно должны присутствовать в этом входной строки.Most of the remaining NumberStyles members control elements that may be present, but are not required to be present, in this input string. В следующей таблице показаны как отдельные NumberStyles члены влияют на элементы, которые могут присутствовать в value.The following table indicates how individual NumberStyles members affect the elements that may be present in value.

Простые NumberStyles значенияNon-composite NumberStyles values Элементы, допустимые в значении помимо цифрElements permitted in value in addition to digits
None Только десятичные цифры.Decimal digits only.
AllowDecimalPoint Десятичной запятой (.) и цифры_дробной_части элементов.The decimal point (.) and fractional_digits elements. Тем не менее цифры_дробной_части должен включать только один или несколько цифр 0, или этот метод возвращает false.However, fractional_digits must consist of only one or more 0 digits, or the method returns false.
AllowExponent «E» или «E» знаком, который указывает экспоненциальное представление, вместе с экспоненциальные_цифры.The "e" or "E" character, which indicates exponential notation, along with exponential_digits. Если value представляет число в экспоненциальном представлении, он не может иметь ненулевое значение дробного компонента.If value represents a number in exponential notation, it cannot have a non-zero, fractional component.
AllowLeadingWhite Ws элемент в начале value.The ws element at the start of value.
AllowTrailingWhite Ws элемент в конце value.The ws element at the end of value.
AllowLeadingSign Входа элемент перед цифр.The sign element before digits.
AllowTrailingSign Входа после элемента цифр.The sign element after digits.
AllowParentheses Входа элемент в скобки, заключив числовое значение.The sign element in the form of parentheses enclosing the numeric value.
AllowThousands Разделитель групп (,) элемент.The group separator (,) element.
AllowCurrencySymbol Валюта ($) элемент.The currency ($) element.
Currency Все элементы.All elements. Тем не менее value не может представлять шестнадцатеричное число или число в экспоненциальном представлении.However, value cannot represent a hexadecimal number or a number in exponential notation.
Float Ws элемент в начале или конце value, входа в начале valueи десятичной запятой (.) символов.The ws element at the start or end of value, sign at the start of value, and the decimal point (.) symbol. value Параметр можно также использовать экспоненциальное представление.The value parameter can also use exponential notation.
Number Ws, входа, разделитель групп (,) и десятичной запятой (.) элементов.The ws, sign, group separator (,), and decimal point (.) elements.
Any Все элементы.All elements. Тем не менее value не может представлять шестнадцатеричное число.However, value cannot represent a hexadecimal number.

Важно!

При использовании TryParse метод для обратного преобразования строкового представления объекта BigInteger значение, которое было выходные ToString метод, следует использовать BigInteger.ToString(String) метод с помощью описателя формата «R» для создания строкового представления BigInteger значение.If you use the TryParse method to round-trip the string representation of a BigInteger value that was output by the ToString method, you should use the BigInteger.ToString(String) method with the "R" format specifier to generate the string representation of the BigInteger value. В противном случае — строковое представление BigInteger сохраняет только 50 наиболее значимых цифр, исходное значение, и данные могут быть потеряны, если вы используете TryParse метод восстановления BigInteger значение.Otherwise, the string representation of the BigInteger preserves only the 50 most significant digits of the original value, and data may be lost when you use the TryParse method to restore the BigInteger value.

Если NumberStyles.AllowHexSpecifier флага value должен представлять собой шестнадцатеричное значение.If the NumberStyles.AllowHexSpecifier flag is used, value must be a hexadecimal value. Только другие флаги, которые могут быть представлены в style являются NumberStyles.AllowLeadingWhite и NumberStyles.AllowTrailingWhite.The only other flags that can be present in style are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. ( NumberStyles Перечисление имеет составной стиль HexNumber, включающий в себя оба флага пустого пространства.)(The NumberStyles enumeration has a composite style, HexNumber, that includes both white-space flags.)

Примечание

Если value является строковым представлением шестнадцатеричного числа, он не может начинаться с описателей (таких как 0x или &h), отличающее его как шестнадцатеричное число.If value is the string representation of a hexadecimal number, it cannot be preceded by any decoration (such as 0x or &h) that differentiates it as a hexadecimal number. Это приводит к сбою преобразования.This causes the conversion to fail.

Если value является шестнадцатеричной строки, TryParse(String, NumberStyles, IFormatProvider, BigInteger) метод интерпретирует value как отрицательное число, хранятся с помощью двух дополнением представление, в случае его первых двух шестнадцатеричных цифр больше или равно 0x80.If value is a hexadecimal string, the TryParse(String, NumberStyles, IFormatProvider, BigInteger) method interprets value as a negative number stored by using two's complement representation if its first two hexadecimal digits are greater than or equal to 0x80. Другими словами, этот метод интерпретирует самого старшего бита первого байта в value называется знаковым битом.In other words, the method interprets the highest-order bit of the first byte in value as the sign bit. Чтобы убедиться в том, что шестнадцатеричной строки интерпретируется правильно как положительное число, первая цифра в value должен иметь нулевое значение.To make sure that a hexadecimal string is correctly interpreted as a positive number, the first digit in value must have a value of zero. Например, этот метод интерпретирует 0x80 как отрицательное значение, но он интерпретирует либо 0x080 или 0x0080 как положительное значение.For example, the method interprets 0x80 as a negative value, but it interprets either 0x080 or 0x0080 as a positive value. В следующем примере показано различие между шестнадцатеричных строк, представляющих положительные и отрицательные значения.The following example illustrates the difference between hexadecimal strings that represent negative and positive values.

using System;
using System.Globalization;
using System.Numerics;

public class Example
{
   public static void Main()
   {
      string[] hexStrings = { "80", "E293", "F9A2FF", "FFFFFFFF", 
                              "080", "0E293", "0F9A2FF", "0FFFFFFFF",  
                              "0080", "00E293", "00F9A2FF", "00FFFFFFFF" };
      BigInteger number = BigInteger.Zero;
                              
      foreach (string hexString in hexStrings)
      {
         if (BigInteger.TryParse(hexString, NumberStyles.AllowHexSpecifier,
                                 null, out number))
            Console.WriteLine("Converted 0x{0} to {1}.", hexString, number);
         else
            Console.WriteLine("Cannot convert '{0}' to a BigInteger.", hexString);
      }
   }
}
// The example displays the following output:
//       Converted 0x80 to -128.
//       Converted 0xE293 to -7533.
//       Converted 0xF9A2FF to -417025.
//       Converted 0xFFFFFFFF to -1.
//       Converted 0x080 to 128.
//       Converted 0x0E293 to 58003.
//       Converted 0x0F9A2FF to 16360191.
//       Converted 0x0FFFFFFFF to 4294967295.
//       Converted 0x0080 to 128.
//       Converted 0x00E293 to 58003.
//       Converted 0x00F9A2FF to 16360191.
//       Converted 0x00FFFFFFFF to 4294967295.
Imports System.Globalization
Imports System.Numerics

Module Example
   Public Sub Main()
      Dim hexStrings() As String = { "80", "E293", "F9A2FF", "FFFFFFFF", 
                                     "080", "0E293", "0F9A2FF", "0FFFFFFFF",  
                                     "0080", "00E293", "00F9A2FF", "00FFFFFFFF" }
      Dim number As BigInteger = BigInteger.Zero
      
      For Each hexString As String In hexStrings
         If BigInteger.TryParse(hexString, NumberStyles.AllowHexSpecifier, 
                                Nothing, number) Then
            Console.WriteLine("Converted 0x{0} to {1}.", hexString, number)
         Else
            Console.WriteLine("Cannot convert '{0}' to a BigInteger.", hexString)
         End If
      Next         
   End Sub
End Module
' The example displays the following output:
'       Converted 0x80 to -128.
'       Converted 0xE293 to -7533.
'       Converted 0xF9A2FF to -417025.
'       Converted 0xFFFFFFFF to -1.
'       Converted 0x080 to 128.
'       Converted 0x0E293 to 58003.
'       Converted 0x0F9A2FF to 16360191.
'       Converted 0x0FFFFFFFF to 4294967295.
'       Converted 0x0080 to 128.
'       Converted 0x00E293 to 58003.
'       Converted 0x00F9A2FF to 16360191.
'       Converted 0x00FFFFFFFF to 4294967295.

provider Параметр IFormatProvider реализации.The provider parameter is an IFormatProvider implementation. Его GetFormat возвращает NumberFormatInfo объект, который предоставляет зависящие от культуры сведения о формате параметра value.Its GetFormat method returns a NumberFormatInfo object that provides culture-specific information about the format of value. provider Параметр может принимать одно из следующих:The provider parameter can be any one of the following:

  • Объект CultureInfo , представляющий язык и региональные параметры, который предоставляет сведения о форматировании.A CultureInfo object that represents the culture that supplies formatting information. Его GetFormat возвращает метод NumberFormatInfo объект, предоставляющий сведения о форматировании числовых для этого языка и региональных параметров.Its GetFormat method returns the NumberFormatInfo object that provides numeric formatting information for that culture.

  • Объект NumberFormatInfo объект, предоставляющий сведения о форматировании числовых.A NumberFormatInfo object that provides numeric formatting information. (Его реализации GetFormat просто возвращает сам себя.)(Its implementation of GetFormat just returns itself.)

  • Пользовательский объект, реализующий IFormatProvider.A custom object that implements IFormatProvider. Его GetFormat метод создает экземпляр и возвращает NumberFormatInfo объект, предоставляющий сведения о форматировании.Its GetFormat method instantiates and returns the NumberFormatInfo object that provides formatting information.

Если providernull, NumberFormatInfo объект для текущего языка и региональных параметров.If provider is null, the NumberFormatInfo object for the current culture is used.

Дополнительно

Применяется к