BigInteger.Parse BigInteger.Parse BigInteger.Parse BigInteger.Parse Method

Определение

Преобразует строковое представление числа в его эквивалент типа BigInteger.Converts the string representation of a number to its BigInteger equivalent.

Перегрузки

Parse(String) Parse(String) Parse(String) Parse(String)

Преобразует строковое представление числа в его эквивалент типа BigInteger.Converts the string representation of a number to its BigInteger equivalent.

Parse(String, NumberStyles) Parse(String, NumberStyles) Parse(String, NumberStyles) Parse(String, NumberStyles)

Преобразует строковое представление числа с указанным стилем в его эквивалент в формате BigInteger.Converts the string representation of a number in a specified style to its BigInteger equivalent.

Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider)

Преобразует строковое представление числа в указанном формате, связанном с определенным языком и региональными параметрами, в его эквивалент типа BigInteger.Converts the string representation of a number in a specified culture-specific format to its BigInteger equivalent.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider)

Преобразует строковое представление числа в указанном стиле и формате, связанном с определенным языком и региональными параметрами, в его эквивалент типа BigInteger.Converts the string representation of a number in a specified style and culture-specific format to its BigInteger equivalent.

Parse(String) Parse(String) Parse(String) Parse(String)

Преобразует строковое представление числа в его эквивалент типа BigInteger.Converts the string representation of a number to its BigInteger equivalent.

public:
 static System::Numerics::BigInteger Parse(System::String ^ value);
public static System.Numerics.BigInteger Parse (string value);
static member Parse : string -> System.Numerics.BigInteger
Public Shared Function Parse (value As String) As BigInteger

Параметры

value
String String String String

Строка, содержащая преобразуемое число.A string that contains the number to convert.

Возвраты

Значение, эквивалентное числу, которое задается параметром value.A value that is equivalent to the number specified in the value parameter.

Исключения

value имеет неправильный формат.value is not in the correct format.

Примеры

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

string stringToParse = String.Empty;
try
{
   // Parse two strings.
   string string1, string2;
   string1 = "12347534159895123";
   string2 = "987654321357159852";
   stringToParse = string1;
   BigInteger number1 = BigInteger.Parse(stringToParse);
   Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number1);        
   stringToParse = string2;
   BigInteger number2 = BigInteger.Parse(stringToParse);
   Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number2);
   // Perform arithmetic operations on the two numbers.
   number1 *= 3;
   number2 *= 2;
   // Compare the numbers.
   int result = BigInteger.Compare(number1, number2);
   switch (result)
   {
      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;
   }      
}
catch (FormatException)
{
   Console.WriteLine("Unable to parse {0}.", stringToParse);
}
// The example displays the following output:
//    Converted '12347534159895123' to 12,347,534,159,895,123.
//    Converted '987654321357159852' to 987,654,321,357,159,852.
//    1975308642714319704 is greater than 37042602479685369.      
Dim stringToParse As String = String.Empty
Try
   ' Parse two strings.
   Dim string1, string2 As String
   string1 = "12347534159895123"
   string2 = "987654321357159852"
   stringToParse = string1
   Dim number1 As BigInteger = BigInteger.Parse(stringToParse)
   Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number1)
   stringToParse = string2
   Dim number2 As BigInteger = BigInteger.Parse(stringToParse)
   Console.WriteLine("Converted '{0}' to {1:N0}.", stringToParse, number2)
   ' Perform arithmetic operations on the two numbers.
   number1 *= 3
   number2 *= 2
   ' Compare the numbers.
   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      
Catch e As FormatException
   Console.WriteLine("Unable to parse {0}.", stringToParse)
End Try
' The example displays the following output:
'    Converted '12347534159895123' to 12,347,534,159,895,123.
'    Converted '987654321357159852' to 987,654,321,357,159,852.
'    1975308642714319704 is greater than 37042602479685369.      

Комментарии

value Параметр должен иметь строковое представление числа в следующей форме.The value parameter should be the string representation of a 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 digits ranging from 0 to 9. Все начальные нули пропускаются.Any leading zeros are ignored.

Примечание

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

value Анализируется с использованием сведений о форматировании в System.Globalization.NumberFormatInfo , инициализируемый для текущего языка и региональных параметров системы.The value parameter is parsed by using the formatting information in a System.Globalization.NumberFormatInfo object that is initialized for the current system culture. Дополнительные сведения см. в разделе NumberFormatInfo.CurrentInfo.For more information, see NumberFormatInfo.CurrentInfo. Чтобы проанализировать строку с помощью сведений о форматировании для определенного языка и региональных параметров, используйте Parse(String, IFormatProvider) метод.To parse a string by using the formatting information of a specific culture, use the Parse(String, IFormatProvider) method.

Важно!

При использовании Parse метод для обратного преобразования строкового представления объекта BigInteger значение, которое было выходные ToString метод, следует использовать BigInteger.ToString(String) метод с помощью описателя формата «R» для создания строкового представления BigInteger значение.If you use the Parse 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 наиболее значимых цифр, исходное значение, и данные могут быть потеряны, если вы используете Parse метод восстановления 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 Parse method to restore the BigInteger value.

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

Parse(String, NumberStyles) Parse(String, NumberStyles) Parse(String, NumberStyles) Parse(String, NumberStyles)

Преобразует строковое представление числа с указанным стилем в его эквивалент в формате BigInteger.Converts the string representation of a number in a specified style to its BigInteger equivalent.

public:
 static System::Numerics::BigInteger Parse(System::String ^ value, System::Globalization::NumberStyles style);
public static System.Numerics.BigInteger Parse (string value, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> System.Numerics.BigInteger
Public Shared Function Parse (value As String, style As NumberStyles) As BigInteger

Параметры

value
String String String String

Строка, содержащая преобразуемое число.A string that contains a number to convert.

style
NumberStyles NumberStyles NumberStyles NumberStyles

Побитовое сочетание значений перечисления, которое показывает разрешенный формат параметра value.A bitwise combination of the enumeration values that specify the permitted format of value.

Возвраты

Значение, эквивалентное числу, которое задается параметром value.A value that is equivalent to the number specified in the value parameter.

Исключения

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

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

value не соответствует образцу ввода, заданному NumberStyles.value does not comply with the input pattern specified by NumberStyles.

Примеры

В следующем примере показано вызовы Parse(String, NumberStyles) метод с несколько возможных значений для style параметра.The following example illustrates calls to the Parse(String, NumberStyles) method with several possible values for the style parameter. Он показывает, как интерпретировать строку как шестнадцатеричное значение и запретить пробелы и подписать символы.It illustrates how to interpret a string as a hexadecimal value, and how to disallow spaces and sign symbols.

BigInteger number; 
// Method should succeed (white space and sign allowed)
number = BigInteger.Parse("   -68054   ", NumberStyles.Integer);
Console.WriteLine(number);
// Method should succeed (string interpreted as hexadecimal)
number = BigInteger.Parse("68054", NumberStyles.AllowHexSpecifier);
Console.WriteLine(number);
// Method call should fail: sign not allowed
try
{
   number = BigInteger.Parse("   -68054  ", NumberStyles.AllowLeadingWhite 
                                            | NumberStyles.AllowTrailingWhite);
   Console.WriteLine(number);
}   
catch (FormatException e)
{
   Console.WriteLine(e.Message);
}                                                     
// Method call should fail: white space not allowed
try
{
   number = BigInteger.Parse("   68054  ", NumberStyles.AllowLeadingSign);
   Console.WriteLine(number);
}
catch (FormatException e)
{
   Console.WriteLine(e.Message);
}    
//
// The method produces the following output:
//
//     -68054
//     426068
//     Input string was not in a correct format.
//     Input string was not in a correct format.                                                 
Dim number As BigInteger 
' Method should succeed (white space and sign allowed)
number = BigInteger.Parse("   -68054   ", NumberStyles.Integer)
Console.WriteLine(number)
' Method should succeed (string interpreted as hexadecimal)
number = BigInteger.Parse("68054", NumberStyles.AllowHexSpecifier)
Console.WriteLine(number)
' Method call should fail: sign not allowed
Try
   number = BigInteger.Parse("   -68054  ", NumberStyles.AllowLeadingWhite _
                                            Or NumberStyles.AllowTrailingWhite)
   Console.WriteLine(number)
Catch e As FormatException
   Console.WriteLine(e.Message)
End Try                                                     
' Method call should fail: white space not allowed
Try
   number = BigInteger.Parse("   68054  ", NumberStyles.AllowLeadingSign)
   Console.WriteLine(number)
Catch e As FormatException
   Console.WriteLine(e.Message)
End Try    
'
' The method produces the following output:
'
'     -68054
'     426068
'     Input string was not in a correct format.
'     Input string was not in a correct format.                                                 

Комментарии

style Параметр определяет элементы стиля (например, пробел, символ знак плюс или минус, символ-разделитель групп или символ десятичной запятой), которые разрешены в value параметр для успешного выполнения операции синтаксического анализа.The style parameter defines the style elements (such as white space, the positive or negative sign symbol, the group separator symbol, or the decimal point symbol) that are allowed in the value parameter for the parse operation to succeed. styles должен представлять собой сочетание битовых флагов из NumberStyles перечисления.styles must be a combination of bit flags from the NumberStyles enumeration. style Параметр делает этот метод перегрузки в полезно, когда value содержит строковое представление шестнадцатеричного значения, в том случае, если представленный в системе счисления (десятичное или шестнадцатеричное) value становится известным только во время выполнения, или если вы хотите запретить пробел или символ знака в value.The style parameter makes this method overload useful when value contains the string representation of a hexadecimal value, when the number system (decimal or hexadecimal) represented by value is known only at run time, or when you want to disallow white space or a sign symbol in value.

В зависимости от значения 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 включает в себя NumberStyles.AllowHexSpecifier, value параметр может содержать следующие элементы:If style includes NumberStyles.AllowHexSpecifier, the value parameter may contain 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, and it can appear at the end of value if style includes the NumberStyles.AllowTrailingWhite flag.
$ Символ валюты.A culture-specific currency symbol. Его положение в строке определяется NumberFormatInfo.CurrencyNegativePattern и NumberFormatInfo.CurrencyPositivePattern свойства текущего языка и региональных параметров.Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern and NumberFormatInfo.CurrencyPositivePattern properties of the current culture. Символ валюты для текущего языка и региональных параметров может встречаться в value Если style включает в себя NumberStyles.AllowCurrencySymbol флаг.The current culture's 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

fractional_digitsfractional_digits

exponential_digitsexponential_digits
Последовательность цифр от 0 до 9.A sequence of digits from 0 through 9. Для цифры_дробной_частитолько из цифр 0 является допустимым.For fractional_digits, only the digit 0 is valid.
,, Символ разделителя групп, зависящий от языка и региональных параметров.A culture-specific group separator symbol. Разделитель групп текущего языка и региональных параметров может встречаться в value Если style включает в себя NumberStyles.AllowThousands флаг.The current culture's group separator can appear in value if style includes the NumberStyles.AllowThousands flag.
.. Символ десятичной запятой для конкретного языка и региональных параметров.A culture-specific decimal point symbol. Символ десятичной запятой текущего языка и региональных параметров может содержаться в value Если style включает в себя NumberStyles.AllowDecimalPoint флаг.The current culture's decimal point symbol can appear in value if style includes the NumberStyles.AllowDecimalPoint flag. Только цифры 0 может отображаться в виде дробного числа синтаксического анализа для успешного выполнения операции; Если цифры_дробной_части включает любые другие цифры, FormatException возникает исключение.Only the digit 0 can appear as a fractional digit for the parse operation to succeed; if fractional_digits includes any other digit, a FormatException is thrown.
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.
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 digits only (which corresponds to the NumberStyles.None style) always parses successfully. Большинство оставшихся NumberStyles члены управляют элементами, которые могут присутствовать, но необязательно должны присутствовать во входной строке.Most of the remaining NumberStyles members control elements that may be present, but are not required to be present, in the input string. В следующей таблице показаны как отдельные NumberStyles члены влияют на элементы, которые могут присутствовать в value.The following table indicates how individual NumberStyles members affect the elements that may be present in value.

ЗначениеNumberStyles NumberStyles value Элементы, допустимые в value помимо цифрElements permitted in value in addition to digits
None Цифр только элемент.The digits element only.
AllowDecimalPoint Десятичная точка (.) и дробной части элементов.The decimal point (.) and fractional-digits elements.
AllowExponent «E» или «E» знаком, который указывает экспоненциальное представление, вместе с экспоненциальные_цифры.The "e" or "E" character, which indicates exponential notation, along with exponential_digits.
AllowLeadingWhite Ws элемент в начале value.The ws element at the start of value.
AllowTrailingWhite Ws элемент в конце value.The ws element at the end of value.
AllowLeadingSign Входа элемент в начале value.The sign element at the start of value.
AllowTrailingSign Входа элемент в конце value.The sign element at the end of value.
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, sign, Разделитель групп (,) и десятичной запятой (.) элементов.The ws, sign, group separator (,), and decimal point (.) elements.
Any Все элементы.All elements. Тем не менее value не может представлять шестнадцатеричное число.However, value cannot represent a hexadecimal number.

Важно!

При использовании Parse метод для обратного преобразования строкового представления объекта BigInteger значение, которое было выходные ToString метод, следует использовать BigInteger.ToString(String) метод с помощью описателя формата «R» для создания строкового представления BigInteger значение.If you use the Parse 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 наиболее значимых цифр, исходное значение, и данные могут быть потеряны, если вы используете Parse метод восстановления 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 Parse method to restore the BigInteger value.

В отличие от других NumberStyles значения, которые позволяют, но не требуют наличия определенного стиля элементов в value, NumberStyles.AllowHexSpecifier значение стиля означает, что отдельные цифры в value всегда интерпретируется как шестнадцатеричные символы.Unlike the other NumberStyles values, which allow for, but do not require, the presence of particular style elements in value, the NumberStyles.AllowHexSpecifier style value means that the individual numeric characters in value are always interpreted as hexadecimal characters. Допустимые шестнадцатеричные цифры символы являются 0-9, A-F и a-f.Valid hexadecimal characters are 0-9, A-F, and a-f. Только другие флаги, которые могут быть объединены с style являются NumberStyles.AllowLeadingWhite и NumberStyles.AllowTrailingWhite.The only other flags that can be combined with the style parameter are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. ( NumberStyles Перечисления включает стили составного числа, HexNumber, включающий в себя оба флага пустого пространства.)(The NumberStyles enumeration includes a composite number 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 является шестнадцатеричной строки, Parse(String, NumberStyles) метод интерпретирует value как отрицательное число, хранятся с помощью двух дополнением представление, в случае его первых двух шестнадцатеричных цифр больше или равно 0x80.If value is a hexadecimal string, the Parse(String, NumberStyles) 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" };
      foreach (string hexString in hexStrings)
      {
         BigInteger number = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier);
         Console.WriteLine("Converted 0x{0} to {1}.", hexString, number);
      }         
   }
}
// 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" }
      For Each hexString As String In hexStrings
         Dim number As BigInteger = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier)
         Console.WriteLine("Converted 0x{0} to {1}.", hexString, number)
      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.

value Анализируется с использованием сведений о форматировании в NumberFormatInfo , инициализируемый для текущего языка и региональных параметров системы.The value parameter is parsed by using the formatting information in a NumberFormatInfo object that is initialized for the current system culture. Чтобы указать язык и региональные параметры, чье форматирования используется для синтаксического анализа, вызовите Parse(String, NumberStyles, IFormatProvider) перегрузки.To specify the culture whose formatting information is used for the parse operation, call the Parse(String, NumberStyles, IFormatProvider) overload.

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

Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider)

Преобразует строковое представление числа в указанном формате, связанном с определенным языком и региональными параметрами, в его эквивалент типа BigInteger.Converts the string representation of a number in a specified culture-specific format to its BigInteger equivalent.

public:
 static System::Numerics::BigInteger Parse(System::String ^ value, IFormatProvider ^ provider);
public static System.Numerics.BigInteger Parse (string value, IFormatProvider provider);
static member Parse : string * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (value As String, provider As IFormatProvider) As BigInteger

Параметры

value
String String String String

Строка, содержащая преобразуемое число.A string that contains a number to convert.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

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

Возвраты

Значение, эквивалентное числу, которое задается параметром value.A value that is equivalent to the number specified in the value parameter.

Исключения

value имеет неправильный формат.value is not in the correct format.

Примеры

В следующих примерах показано два способа определения тильды (~) в качестве символа отрицательного для форматирования BigInteger значения.The following examples show two ways to define the tilde (~) as a negative sign for formatting BigInteger values. Обратите внимание, что для отображения BigInteger значения в тот же формат, что исходных строк, ваш код должен вызывать BigInteger.ToString(IFormatProvider) метод и передать его NumberFormatInfo объект, предоставляющий сведения о форматировании.Note that to display the BigInteger values in the same format as the original strings, your code must call the BigInteger.ToString(IFormatProvider) method and pass it the NumberFormatInfo object that provides formatting information.

В первом примере определяется класс, реализующий IFormatProvider и использует GetFormat метод для возврата NumberFormatInfo объект, предоставляющий сведения о форматировании.The first example defines a class that implements IFormatProvider and uses the GetFormat method to return the NumberFormatInfo object that provides formatting information.

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

Объект BigInteger объект может быть использован со следующим кодом:A BigInteger object can then be instantiated with the following code:

BigInteger number = BigInteger.Parse("~6354129876", new BigIntegerFormatProvider());
// Display value using same formatting information
Console.WriteLine(number.ToString(new BigIntegerFormatProvider()));
// Display value using formatting of current culture
Console.WriteLine(number);
Dim number As BigInteger = BigInteger.Parse("~6354129876", New BigIntegerFormatProvider)
' Display value using same formatting information
Console.WriteLine(number.ToString(New BigIntegerFormatProvider))
' Display value using formatting of current culture
Console.WriteLine(number)

Второй пример является более простым.The second example is more straightforward. Он передает NumberFormatInfo объект, предоставляющий сведения о форматировании для provider параметра.It passes the NumberFormatInfo object that provides formatting information to the provider parameter.

NumberFormatInfo fmt = new NumberFormatInfo();
fmt.NegativeSign = "~";

BigInteger number = BigInteger.Parse("~6354129876", fmt);
// Display value using same formatting information
Console.WriteLine(number.ToString(fmt));
// Display value using formatting of current culture
Console.WriteLine(number);
Dim fmt As New NumberFormatInfo()
fmt.NegativeSign = "~"

Dim number As BigInteger = BigInteger.Parse("~6354129876", fmt)
' Display value using same formatting information
Console.WriteLine(number.ToString(fmt))
' Display value using formatting of current culture
Console.WriteLine(number)

Комментарии

value Параметр должен иметь строковое представление числа в следующей форме:The value parameter should be the string representation of a 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 свойства NumberFormatInfo объект, возвращаемый provider объекта GetFormat метод.Valid sign characters are determined by the NumberFormatInfo.NegativeSign and NumberFormatInfo.PositiveSign properties of the NumberFormatInfo object that is returned by the provider object's GetFormat method.
digitsdigits Последовательность цифр в диапазоне от 0 до 9.A sequence of digits ranging from 0 to 9. Все начальные нули пропускаются.Any leading zeros are ignored.

Примечание

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

Важно!

При использовании Parse метод для обратного преобразования строкового представления объекта BigInteger значение, которое было выходные ToString метод, следует использовать BigInteger.ToString(String) метод с помощью описателя формата «R» для создания строкового представления BigInteger значение.If you use the Parse 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 наиболее значимых цифр, исходное значение, и данные могут быть потеряны, если вы используете Parse метод восстановления 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 Parse method to restore the BigInteger value.

provider Параметр IFormatProvider реализации которого GetFormat возвращает метод NumberFormatInfo объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.The provider parameter is an IFormatProvider implementation whose GetFormat method returns a NumberFormatInfo object that provides culture-specific formatting information. Когда Parse(String, IFormatProvider) вызывается метод, он вызывает метод provider параметра GetFormat метод и передает его Type , представляющий NumberFormatInfo типа.When the Parse(String, IFormatProvider) method is invoked, it calls the provider parameter's GetFormat method and passes it a Type object that represents the NumberFormatInfo type. GetFormat Метод затем возвращает NumberFormatInfo объект, предоставляющий сведения о формате параметра value параметр.The GetFormat method then returns the NumberFormatInfo object that provides information about the format of the value parameter. Существует три способа использования provider указать пользовательские сведения о форматировании для операции синтаксического анализа:There are three ways to use the provider parameter to supply custom formatting information to the parse operation:

  • Вы можете передать CultureInfo , представляющий язык и региональные параметры, который предоставляет сведения о форматировании.You can pass 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 объект, предоставляющий сведения о форматировании числовых.You can pass the actual NumberFormatInfo object that provides numeric formatting information. (Его реализации GetFormat просто возвращает сам себя.)(Its implementation of GetFormat just returns itself.)

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

Если providernull, форматирование value обрабатывается на основе NumberFormatInfo объект текущего языка и региональных параметров.If provider is null, the formatting of value is interpreted based on the NumberFormatInfo object of the current culture.

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

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

public static System.Numerics.BigInteger Parse (ReadOnlySpan<char> value, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = null);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (value As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = null) As BigInteger

Параметры

Возвраты

Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider) Parse(String, NumberStyles, IFormatProvider)

Преобразует строковое представление числа в указанном стиле и формате, связанном с определенным языком и региональными параметрами, в его эквивалент типа BigInteger.Converts the string representation of a number in a specified style and culture-specific format to its BigInteger equivalent.

public:
 static System::Numerics::BigInteger Parse(System::String ^ value, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public static System.Numerics.BigInteger Parse (string value, System.Globalization.NumberStyles style, IFormatProvider provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (value As String, style As NumberStyles, provider As IFormatProvider) As BigInteger

Параметры

value
String String String String

Строка, содержащая преобразуемое число.A string that contains a number to convert.

style
NumberStyles NumberStyles NumberStyles NumberStyles

Побитовое сочетание значений перечисления, которое показывает разрешенный формат параметра value.A bitwise combination of the enumeration values that specify the permitted format of value.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

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

Возвраты

Значение, эквивалентное числу, которое задается параметром value.A value that is equivalent to the number specified in the value parameter.

Исключения

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

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

value не соответствует образцу ввода, заданному style.value does not comply with the input pattern specified by style.

Примеры

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

// Call parse with default values of style and provider
Console.WriteLine(BigInteger.Parse("  -300   ", 
                  NumberStyles.Integer, CultureInfo.CurrentCulture));
// Call parse with default values of style and provider supporting tilde as negative sign
Console.WriteLine(BigInteger.Parse("   ~300  ", 
                                   NumberStyles.Integer, new BigIntegerFormatProvider()));
// Call parse with only AllowLeadingWhite and AllowTrailingWhite
// Exception thrown because of presence of negative sign
try
{
   Console.WriteLine(BigInteger.Parse("    ~300   ", 
                                NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite, 
                                new BigIntegerFormatProvider()));
}
catch (FormatException e)
{
   Console.WriteLine("{0}: \n   {1}", e.GetType().Name, e.Message);
}                                   
// Call parse with only AllowHexSpecifier
// Exception thrown because of presence of negative sign
try
{
   Console.WriteLine(BigInteger.Parse("-3af", NumberStyles.AllowHexSpecifier, 
                                      new BigIntegerFormatProvider()));
}
catch (FormatException e)
{
   Console.WriteLine("{0}: \n   {1}", e.GetType().Name, e.Message);
}                                 
// Call parse with only NumberStyles.None
// Exception thrown because of presence of white space and sign
try
{
   Console.WriteLine(BigInteger.Parse(" -300 ", NumberStyles.None, 
                                      new BigIntegerFormatProvider()));
}
catch (FormatException e)
{
   Console.WriteLine("{0}: \n   {1}", e.GetType().Name, e.Message);
}
// The example displays the followingoutput:
//       -300
//       -300
//       FormatException:
//          The value could not be parsed.
//       FormatException:
//          The value could not be parsed.
//       FormatException:
//          The value could not be parsed.      
' Call parse with default values of style and provider
Console.WriteLine(BigInteger.Parse("  -300   ", _
                  NumberStyles.Integer, CultureInfo.CurrentCulture))
' Call parse with default values of style and provider supporting tilde as negative sign
Console.WriteLine(BigInteger.Parse("   ~300  ", _
                                   NumberStyles.Integer, New BigIntegerFormatProvider()))
' Call parse with only AllowLeadingWhite and AllowTrailingWhite
' Exception thrown because of presence of negative sign
Try
   Console.WriteLIne(BigInteger.Parse("    ~300   ", _
                                      NumberStyles.AllowLeadingWhite Or NumberStyles.AllowTrailingWhite, _
                                      New BigIntegerFormatProvider()))
Catch e As FormatException
   Console.WriteLine("{0}: {1}   {2}", e.GetType().Name, vbCrLf, e.Message)
End Try                                   
' Call parse with only AllowHexSpecifier
' Exception thrown because of presence of negative sign
Try
   Console.WriteLIne(BigInteger.Parse("-3af", NumberStyles.AllowHexSpecifier, _
                                      New BigIntegerFormatProvider()))
Catch e As FormatException
   Console.WriteLine("{0}: {1}   {2}", e.GetType().Name, vbCrLf, e.Message)
End Try                                 
' Call parse with only NumberStyles.None
' Exception thrown because of presence of white space and sign
Try
   Console.WriteLIne(BigInteger.Parse(" -300 ", NumberStyles.None, _
                                      New BigIntegerFormatProvider()))
Catch e As FormatException
   Console.WriteLine("{0}: {1}   {2}", e.GetType().Name, vbCrLf, e.Message)
End Try
' The example displays the following output:
'       -300
'       -300
'       FormatException:
'          The value could not be parsed.
'       FormatException:
'          The value could not be parsed.
'       FormatException:
'          The value could not be parsed.            

Ряд отдельные вызовы, чтобы Parse(String, NumberStyles, IFormatProvider) метод передать экземпляр из следующих BigIntegerFormatProvider класс, который определяет как отрицательный знак тильды (~).A number of the individual calls to the Parse(String, NumberStyles, IFormatProvider) 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

Комментарии

style Параметр определяет элементы стиля (например, пробел, символ знак плюс или минус, символ-разделитель групп или символ десятичной запятой), которые разрешены в value параметр для успешного выполнения операции синтаксического анализа.The style parameter defines the style elements (such as white space, the positive or negative sign symbol, the group separator symbol, or the decimal point symbol) that are allowed in the value parameter for the parse operation to succeed. styles должен представлять собой сочетание битовых флагов из NumberStyles перечисления.styles must be a combination of bit flags from the NumberStyles enumeration. style Параметр делает этот метод перегрузки в полезно, когда value содержит строковое представление шестнадцатеричного значения, в том случае, если представленный в системе счисления (десятичное или шестнадцатеричное) value становится известным только во время выполнения, или если вы хотите запретить пробел или символ знака в value.The style parameter makes this method overload useful when value contains the string representation of a hexadecimal value, when the number system (decimal or hexadecimal) represented by value is known only at run time, or when you want to disallow white space or a sign symbol in value.

В зависимости от значения 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 включает в себя NumberStyles.AllowHexSpecifier, value параметр может содержать следующие элементы:If style includes NumberStyles.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, and it can appear at the end of value if style includes the NumberStyles.AllowTrailingWhite flag.
$ Символ валюты.A culture-specific currency symbol. Его положение в строке определяется NumberFormatInfo.CurrencyNegativePattern и NumberFormatInfo.CurrencyPositivePattern обозначается свойства языка и региональных параметров provider параметра.Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern and NumberFormatInfo.CurrencyPositivePattern properties of the culture indicated by the provider parameter. Символ валюты для текущего языка и региональных параметров может встречаться в value Если style включает в себя NumberStyles.AllowCurrencySymbol флаг.The current culture's 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

fractional_digitsfractional_digits

exponential_digitsexponential_digits
Последовательность цифр от 0 до 9.A sequence of digits from 0 through 9. Для цифры_дробной_частитолько из цифр 0 является допустимым.For fractional_digits, only the digit 0 is valid.
,, Символ разделителя групп, зависящий от языка и региональных параметров.A culture-specific group separator symbol. Символ-разделитель групп языка и региональных параметров, заданные provider могут присутствовать в value Если style включает в себя NumberStyles.AllowThousands флаг.The group separator symbol 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 designated by provider can appear in value if style includes the NumberStyles.AllowDecimalPoint flag. Только цифры 0 может отображаться в виде дробного числа синтаксического анализа для успешного выполнения операции; Если цифры_дробной_части включает любые другие цифры, FormatException возникает исключение.Only the digit 0 can appear as a fractional digit for the parse operation to succeed; if fractional_digits includes any other digit, a FormatException is thrown.
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.
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 digits only (which corresponds to the NumberStyles.None style) always parses successfully. Большинство оставшихся NumberStyles члены управляют элементами, которые могут присутствовать, но необязательно должны присутствовать во входной строке.Most of the remaining NumberStyles members control elements that may be present, but are not required to be present, in the input string. В следующей таблице показаны как отдельные NumberStyles члены влияют на элементы, которые могут присутствовать в value.The following table indicates how individual NumberStyles members affect the elements that may be present in value.

Значение NumberStylesNumberStyles value Элементы, допустимые в значении помимо цифрElements permitted in value in addition to digits
None Цифр только элемент.The digits element only.
AllowDecimalPoint Десятичная точка (.) и дробной части элементов.The decimal point (.) and fractional-digits elements.
AllowExponent «E» или символ «E», который указывает на экспоненциальное представление.The "e" or "E" character, which indicates exponential notation. вместе с экспоненциальные_цифры.along with exponential_digits.
AllowLeadingWhite Ws элемент в начале value.The ws element at the start of value.
AllowTrailingWhite Ws элемент в конце value.The ws element at the end of value.
AllowLeadingSign Входа элемент в начале value.The sign element at the start of value.
AllowTrailingSign Входа элемент в конце value.The sign element at the end of value.
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, sign, Разделитель групп (,) и элементы десятичной точки (.).The ws, sign, group separator (,), and decimal point (.) elements.
Any Все элементы.All elements. Тем не менее value не может представлять шестнадцатеричное число.However, value cannot represent a hexadecimal number.

Важно!

При использовании Parse метод для обратного преобразования строкового представления объекта BigInteger значение, которое было выходные ToString метод, следует использовать BigInteger.ToString(String) метод с помощью описателя формата «R» для создания строкового представления BigInteger значение.If you use the Parse 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 наиболее значимых цифр, исходное значение, и данные могут быть потеряны, если вы используете Parse метод восстановления 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 Parse method to restore the BigInteger value.

В отличие от других NumberStyles значения, которые позволяют, а не требуют наличия определенного стиля элементов в value, NumberStyles.AllowHexSpecifier значение стиля означает, что отдельные цифры в value всегда интерпретируется как шестнадцатеричные символы.Unlike the other NumberStyles values, which allow for but do not require the presence of particular style elements in value, the NumberStyles.AllowHexSpecifier style value means that the individual numeric characters in value are always interpreted as hexadecimal characters. Допустимые шестнадцатеричные цифры символы являются 0-9, A-F и a-f.Valid hexadecimal characters are 0-9, A-F, and a-f. Только другие флаги, которые могут быть объединены с style являются NumberStyles.AllowLeadingWhite и NumberStyles.AllowTrailingWhite.The only other flags that can be combined with the style parameter are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. ( NumberStyles Перечисления включает стили составного числа, HexNumber, включающий в себя оба флага пустого пространства.)(The NumberStyles enumeration includes a composite number 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 является шестнадцатеричной строки, Parse(String, NumberStyles) метод интерпретирует value как отрицательное число, хранятся с помощью двух дополнением представление, в случае его первых двух шестнадцатеричных цифр больше или равно 0x80.If value is a hexadecimal string, the Parse(String, NumberStyles) 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" };
      foreach (string hexString in hexStrings)
      {
         BigInteger number = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier);
         Console.WriteLine("Converted 0x{0} to {1}.", hexString, number);
      }         
   }
}
// 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" }
      For Each hexString As String In hexStrings
         Dim number As BigInteger = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier)
         Console.WriteLine("Converted 0x{0} to {1}.", hexString, number)
      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 может принимать одно из следующих:Typically, provider can be any one of the following:

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

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

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

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

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

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