UInt16.Parse 方法

定义

将数字的字符串表示形式转换为它的等效 16 位无符号整数。Converts the string representation of a number to its 16-bit unsigned integer equivalent.

重载

Parse(String, NumberStyles, IFormatProvider)

将指定样式和区域性特定格式的数字的字符串表示形式转换为它的等效 16 位无符号整数。Converts the string representation of a number in a specified style and culture-specific format to its 16-bit unsigned integer equivalent.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

将指定样式和区域性特定格式的数字的范围表示形式转换为其等效的 16 位无符号整数。Converts the span representation of a number in a specified style and culture-specific format to its 16-bit unsigned integer equivalent.

Parse(String, NumberStyles)

将指定样式的数字的字符串表示形式转换为它的等效 16 位无符号整数。Converts the string representation of a number in a specified style to its 16-bit unsigned integer equivalent.

此方法与 CLS 不兼容。This method is not CLS-compliant. 符合 CLS 的替代方法是 Parse(String, NumberStyles)The CLS-compliant alternative is Parse(String, NumberStyles).

Parse(String)

将数字的字符串表示形式转换为它的等效 16 位无符号整数。Converts the string representation of a number to its 16-bit unsigned integer equivalent.

Parse(String, IFormatProvider)

将指定区域性特定格式的数字的字符串表示形式转换为它的等效 16 位无符号整数。Converts the string representation of a number in a specified culture-specific format to its 16-bit unsigned integer equivalent.

Parse(String, NumberStyles, IFormatProvider)

重要

此 API 不符合 CLS。

符合 CLS 的替代方案
System.Int32.Parse(String)

将指定样式和区域性特定格式的数字的字符串表示形式转换为它的等效 16 位无符号整数。Converts the string representation of a number in a specified style and culture-specific format to its 16-bit unsigned integer equivalent.

public:
 static System::UInt16 Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
[System.CLSCompliant(false)]
public static ushort Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> uint16
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As UShort

参数

s
String

表示要转换的数字的字符串。A string that represents the number to convert. 该字符串使用由 style 参数指定的样式来进行解释。The string is interpreted by using the style specified by the style parameter.

style
NumberStyles

枚举值的按位组合,用于指示可出现在 s 中的样式元素。A bitwise combination of enumeration values that indicate the style elements that can be present in s. 要指定的一个典型值为 IntegerA typical value to specify is Integer.

provider
IFormatProvider

一个对象,提供有关 s 的区域性特定格式设置信息。An object that supplies culture-specific formatting information about s.

返回

s 中指定的数字等效的 16 位无符号整数。A 16-bit unsigned integer equivalent to the number specified in s.

属性

异常

snulls is null.

style 不是 NumberStyles 值。style is not a NumberStyles value.

-or- style 不是 AllowHexSpecifierHexNumber 值的组合。style is not a combination of AllowHexSpecifier and HexNumber values.

s 的格式不符合 styles is not in a format compliant with style.

s 表示一个小于 MinValue 或大于 MaxValue 的数字。s represents a number that is less than MinValue or greater than MaxValue.

-or- s 包含非零的小数位。s includes non-zero, fractional digits.

示例

下面的示例使用 Parse(String, NumberStyles, IFormatProvider) 方法将数字的各种字符串表示形式转换为16位无符号整数值。The following example uses the Parse(String, NumberStyles, IFormatProvider) method to convert various string representations of numbers to 16-bit unsigned integer values.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] cultureNames = { "en-US", "fr-FR" };
      NumberStyles[] styles= { NumberStyles.Integer, 
                               NumberStyles.Integer | NumberStyles.AllowDecimalPoint };
      string[] values = { "1702", "+1702.0", "+1702,0", "-1032.00",
                          "-1032,00", "1045.1", "1045,1" };
      
      // Parse strings using each culture
      foreach (string cultureName in cultureNames)
      {
         CultureInfo ci = new CultureInfo(cultureName);
         Console.WriteLine("Parsing strings using the {0} culture", 
                           ci.DisplayName);
         // Use each style.
         foreach (NumberStyles style in styles)
         {
            Console.WriteLine("   Style: {0}", style.ToString());
            // Parse each numeric string.
            foreach (string value in values)
            {
               try {
                  Console.WriteLine("      Converted '{0}' to {1}.", value, 
                                    UInt16.Parse(value, style, ci));
               }                                    
               catch (FormatException) {
                  Console.WriteLine("      Unable to parse '{0}'.", value);   
               }
               catch (OverflowException) {
                  Console.WriteLine("      '{0}' is out of range of the UInt16 type.", 
                                    value);
               }
            }
         }
      }   
   }
}
// The example displays the following output:
//       Parsing strings using the English (United States) culture
//          Style: Integer
//             Converted '1702' to 1702.
//             Unable to parse '+1702.0'.
//             Unable to parse '+1702,0'.
//             Unable to parse '-1032.00'.
//             Unable to parse '-1032,00'.
//             Unable to parse '1045.1'.
//             Unable to parse '1045,1'.
//          Style: Integer, AllowDecimalPoint
//             Converted '1702' to 1702.
//             Converted '+1702.0' to 1702.
//             Unable to parse '+1702,0'.
//             '-1032.00' is out of range of the UInt16 type.
//             Unable to parse '-1032,00'.
//             '1045.1' is out of range of the UInt16 type.
//             Unable to parse '1045,1'.
//       Parsing strings using the French (France) culture
//          Style: Integer
//             Converted '1702' to 1702.
//             Unable to parse '+1702.0'.
//             Unable to parse '+1702,0'.
//             Unable to parse '-1032.00'.
//             Unable to parse '-1032,00'.
//             Unable to parse '1045.1'.
//             Unable to parse '1045,1'.
//          Style: Integer, AllowDecimalPoint
//             Converted '1702' to 1702.
//             Unable to parse '+1702.0'.
//             Converted '+1702,0' to 1702.
//             Unable to parse '-1032.00'.
//             '-1032,00' is out of range of the UInt16 type.
//             Unable to parse '1045.1'.
//             '1045,1' is out of range of the UInt16 type.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim cultureNames() As String = { "en-US", "fr-FR" }
      Dim styles() As NumberStyles = { NumberStyles.Integer, _
                                       NumberStyles.Integer Or NumberStyles.AllowDecimalPoint }
      Dim values() As String = { "1702", "+1702.0", "+1702,0", "-1032.00", _
                                 "-1032,00", "1045.1", "1045,1" }
      
      ' Parse strings using each culture
      For Each cultureName As String In cultureNames
         Dim ci As New CultureInfo(cultureName)
         Console.WriteLine("Parsing strings using the {0} culture", ci.DisplayName)
         ' Use each style.
         For Each style As NumberStyles In styles
            Console.WriteLine("   Style: {0}", style.ToString())
            ' Parse each numeric string.
            For Each value As String In values
               Try
                  Console.WriteLine("      Converted '{0}' to {1}.", value, _
                                    UInt16.Parse(value, style, ci))
               Catch e As FormatException
                  Console.WriteLine("      Unable to parse '{0}'.", value)   
               Catch e As OverflowException
                  Console.WriteLine("      '{0}' is out of range of the UInt16 type.", _
                                    value)         
               End Try
            Next
         Next
      Next                                    
   End Sub
End Module
' The example displays the following output:
'       Parsing strings using the English (United States) culture
'          Style: Integer
'             Converted '1702' to 1702.
'             Unable to parse '+1702.0'.
'             Unable to parse '+1702,0'.
'             Unable to parse '-1032.00'.
'             Unable to parse '-1032,00'.
'             Unable to parse '1045.1'.
'             Unable to parse '1045,1'.
'          Style: Integer, AllowDecimalPoint
'             Converted '1702' to 1702.
'             Converted '+1702.0' to 1702.
'             Unable to parse '+1702,0'.
'             '-1032.00' is out of range of the UInt16 type.
'             Unable to parse '-1032,00'.
'             '1045.1' is out of range of the UInt16 type.
'             Unable to parse '1045,1'.
'       Parsing strings using the French (France) culture
'          Style: Integer
'             Converted '1702' to 1702.
'             Unable to parse '+1702.0'.
'             Unable to parse '+1702,0'.
'             Unable to parse '-1032.00'.
'             Unable to parse '-1032,00'.
'             Unable to parse '1045.1'.
'             Unable to parse '1045,1'.
'          Style: Integer, AllowDecimalPoint
'             Converted '1702' to 1702.
'             Unable to parse '+1702.0'.
'             Converted '+1702,0' to 1702.
'             Unable to parse '-1032.00'.
'             '-1032,00' is out of range of the UInt16 type.
'             Unable to parse '1045.1'.
'             '1045,1' is out of range of the UInt16 type.

注解

style 参数定义在 s 参数中允许的样式元素(如空格或正号或负号符号),以便分析操作成功。The style parameter defines the style elements (such as white space or the positive or negative sign symbol) that are allowed in the s parameter for the parse operation to succeed. 它必须是 NumberStyles 枚举中的位标志的组合。It must be a combination of bit flags from the NumberStyles enumeration.

根据 style的值,s 参数可能包括以下元素:Depending on the value of style, the s parameter may include the following elements:

[ws][$][sign]digits[.fractional_digits][E[sign]exponential_digits][ws][ws][$][sign]digits[.fractional_digits][E[sign]exponential_digits][ws]

方括号 ([ and ]) 中的元素是可选的。Elements in square brackets ([ and ]) are optional. 如果 style 包括 NumberStyles.AllowHexSpecifier,则 s 参数可能包括以下元素:If style includes NumberStyles.AllowHexSpecifier, the s parameter may include the following elements:

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

下表对每个元素进行了描述。The following table describes each element.

元素Element 说明Description
wsws 可选空白。Optional white space. 如果 style 包含 NumberStyles.AllowLeadingWhite 标志,则空格可以出现在 s 的开头,如果 style 包含 NumberStyles.AllowTrailingWhite 标志,则它可以出现在 s 的末尾。White space can appear at the beginning of s if style includes the NumberStyles.AllowLeadingWhite flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
$ 区域性特定的货币符号。A culture-specific currency symbol. 其在字符串中的位置由 provider 参数的 GetFormat 方法返回的 NumberFormatInfo 对象的 CurrencyPositivePattern 属性定义。Its position in the string is defined by the CurrencyPositivePattern property of the NumberFormatInfo object that is returned by the GetFormat method of the provider parameter. 如果 style 包含 NumberStyles.AllowCurrencySymbol 标志,货币符号可以出现在 s 中。The currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign 一个可选的符号。An optional sign. (如果 s 包含负号并表示一个非零数字,则该方法将引发 OverflowException。)如果 style 包含 NumberStyles.AllowLeadingSign 标志,则符号会出现在 s 的开头,如果 style 包含 NumberStyles.AllowTrailingSign 标志,则它可能会显示 s 的结尾。(The method throws an OverflowException if s includes a negative sign and represents a non-zero number.) The sign can appear at the beginning of s if style includes the NumberStyles.AllowLeadingSign flag, and it can appear the end of s if style includes the NumberStyles.AllowTrailingSign flag. 如果 style 包含 NumberStyles.AllowParentheses 标志,则可以在 s 中使用括号来表示负值。Parentheses can be used in s 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 decimal point symbol. 如果 style 包含 NumberStyles.AllowDecimalPoint 标志,当前区域性的小数点符号会出现在 s 中。The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag.
fractional_digitsfractional_digits 如果 style 包括 NumberStyles.AllowExponent 标志,则为数字0-9 的一个或多个匹配项; 如果不是,则为数字0的一个或多个匹配项。One or more occurrences of the digit 0-9 if style includes the NumberStyles.AllowExponent flag, or one or more occurrences of the digit 0 if it does not. 仅当 style 包含 NumberStyles.AllowDecimalPoint 标志时,小数位才能出现在 s 中。Fractional digits can appear in s 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. 如果 style 包含 NumberStyles.AllowExponent 标志,则 s 参数可以表示指数表示法中的数字。The s 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. 如果 style 包含 NumberStyles.AllowExponent 标志,则 s 参数可以表示指数表示法中的数字。The s 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.

备注

无论 style 参数的值是什么,分析操作都将忽略 s 中任何终止的 NUL (U + 0000)字符。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 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 this input string. 下表指示单个 NumberStyles 成员如何影响可能出现在 s中的元素。The following table indicates how individual NumberStyles members affect the elements that may be present in s.

非复合 NumberStylesNon-composite NumberStyles values s 中允许的元素以及数字Elements permitted in s in addition to digits
NumberStyles.None 仅十进制数字。Decimal digits only.
NumberStyles.AllowDecimalPoint 小数点(.)和fractional_digits元素。The decimal point (.) and fractional_digits elements. 但是,如果样式不包含 NumberStyles.AllowExponent 标志,则fractional_digits必须只包含一个或多个0位数;否则,会引发 OverflowExceptionHowever, if style does not include the NumberStyles.AllowExponent flag, fractional_digits must consist of only one or more 0 digits; otherwise, an OverflowException is thrown.
NumberStyles.AllowExponent "E" 或 "E" 字符(指示指数表示法)以及exponential_digitsThe "e" or "E" character, which indicates exponential notation, along with exponential_digits.
NumberStyles.AllowLeadingWhite s开头的ws元素。The ws element at the beginning of s.
NumberStyles.AllowTrailingWhite s末尾的ws元素。The ws element at the end of s.
NumberStyles.AllowLeadingSign 数字之前的符号。A sign before digits.
NumberStyles.AllowTrailingSign 数字后的符号。A sign after digits.
NumberStyles.AllowParentheses 用于指示负值的位数前后的括号。Parentheses before and after digits to indicate a negative value.
NumberStyles.AllowThousands 组分隔符()元素。The group separator (,) element.
NumberStyles.AllowCurrencySymbol 货币($)元素。The currency ($) element.

如果使用 NumberStyles.AllowHexSpecifier 标志,则 s 必须是十六进制值。If the NumberStyles.AllowHexSpecifier flag is used, s must be a hexadecimal value. 有效的十六进制数字是从0到9、从 a 到 f、从 A 到 F。前缀(如 "0x")不受支持,导致分析操作失败。Valid hexadecimal digits are 0 through 9, a through f, and A through F. A prefix, such as "0x", is not supported and causes the parse operation to fail. 可以与 NumberStyles.AllowHexSpecifier 组合的其他标志仅 NumberStyles.AllowLeadingWhiteNumberStyles.AllowTrailingWhiteThe only other flags that can be combined with NumberStyles.AllowHexSpecifier are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. NumberStyles 枚举包含复合数字样式,NumberStyles.HexNumber,其中包含两个空白标志。)(The NumberStyles enumeration includes a composite number style, NumberStyles.HexNumber, that includes both white-space flags.)

备注

如果 s 参数是十六进制数的字符串表示形式,则它的前面不能有将其视为十六进制数的任何修饰(如 0x&h)。If the s parameter 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 parse operation to throw an exception.

provider 参数是其 GetFormat 方法返回 NumberFormatInfo 对象的 IFormatProvider 实现,该对象提供有关 s格式的区域性特定信息。The provider parameter is an IFormatProvider implementation whose GetFormat method returns a NumberFormatInfo object that provides culture-specific information about the format of s. 有三种方法可以使用 provider 参数向分析操作提供自定义格式设置信息:There are three ways to use the provider parameter to supply custom formatting information to the parse operation:

如果 null``provider,则使用当前区域性的 NumberFormatInfo 对象。If provider is null, the NumberFormatInfo object for the current culture is used.

另请参阅

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

重要

此 API 不符合 CLS。

将指定样式和区域性特定格式的数字的范围表示形式转换为其等效的 16 位无符号整数。Converts the span representation of a number in a specified style and culture-specific format to its 16-bit unsigned integer equivalent.

[System.CLSCompliant(false)]
public static ushort Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = null);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> uint16
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = null) As UShort

参数

s
ReadOnlySpan<Char>

一个范围,包含表示要转换的数字的字符。A span containing the characters that represent the number to convert. 该范围使用由 style 参数指定的样式来进行解释。The span is interpreted by using the style specified by the style parameter.

style
NumberStyles

枚举值的按位组合,用于指示可出现在 s 中的样式元素。A bitwise combination of enumeration values that indicate the style elements that can be present in s. 要指定的一个典型值为 IntegerA typical value to specify is Integer.

provider
IFormatProvider

一个对象,提供有关 s 的区域性特定格式设置信息。An object that supplies culture-specific formatting information about s.

返回

s 中指定的数字等效的 16 位无符号整数。A 16-bit unsigned integer equivalent to the number specified in s.

属性

Parse(String, NumberStyles)

重要

此 API 不符合 CLS。

将指定样式的数字的字符串表示形式转换为它的等效 16 位无符号整数。Converts the string representation of a number in a specified style to its 16-bit unsigned integer equivalent.

此方法与 CLS 不兼容。This method is not CLS-compliant. 符合 CLS 的替代方法是 Parse(String, NumberStyles)The CLS-compliant alternative is Parse(String, NumberStyles).

public:
 static System::UInt16 Parse(System::String ^ s, System::Globalization::NumberStyles style);
[System.CLSCompliant(false)]
public static ushort Parse (string s, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> uint16
Public Shared Function Parse (s As String, style As NumberStyles) As UShort

参数

s
String

表示要转换的数字的字符串。A string that represents the number to convert. 该字符串使用由 style 参数指定的样式来进行解释。The string is interpreted by using the style specified by the style parameter.

style
NumberStyles

枚举值的按位组合,这些枚举值指定 s 所允许的格式。A bitwise combination of the enumeration values that specify the permitted format of s. 要指定的一个典型值为 IntegerA typical value to specify is Integer.

返回

s 中指定的数字等效的 16 位无符号整数。A 16-bit unsigned integer equivalent to the number specified in s.

属性

异常

snulls is null.

style 不是 NumberStyles 值。style is not a NumberStyles value.

-or- style 不是 AllowHexSpecifierHexNumber 值的组合。style is not a combination of AllowHexSpecifier and HexNumber values.

s 的格式不符合 styles is not in a format compliant with style.

s 表示一个小于 MinValue 或大于 MaxValue 的数字。s represents a number less than MinValue or greater than MaxValue.

-or- s 包含非零的小数位。s includes non-zero, fractional digits.

示例

下面的示例尝试使用许多 NumberStyles 值来分析字符串数组中的每个元素。The following example tries to parse each element in a string array by using a number of NumberStyles values.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] values = { " 214 ", "1,064", "(0)", "1241+", " + 214 ", " +214 ", "2153.0", "1e03", "1300.0e-2" };
      NumberStyles whitespace =  NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite;
      NumberStyles[] styles = { NumberStyles.None, whitespace, 
                                NumberStyles.AllowLeadingSign | NumberStyles.AllowTrailingSign | whitespace, 
                                NumberStyles.AllowThousands | NumberStyles.AllowCurrencySymbol, 
                                NumberStyles.AllowExponent | NumberStyles.AllowDecimalPoint };

      // Attempt to convert each number using each style combination.
      foreach (string value in values)
      {
         Console.WriteLine("Attempting to convert '{0}':", value);
         foreach (NumberStyles style in styles)
         {
            try {
               ushort number = UInt16.Parse(value, style);
               Console.WriteLine("   {0}: {1}", style, number);
            }   
            catch (FormatException) {
               Console.WriteLine("   {0}: Bad Format", style);
            }
         }
         Console.WriteLine();
      }
   }
}
// The example display the following output:
//    Attempting to convert ' 214 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: 214
//       Integer, AllowTrailingSign: 214
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '1,064':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: 1064
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '(0)':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '1241+':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: 1241
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert ' + 214 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert ' +214 ':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: 214
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: Bad Format
//    
//    Attempting to convert '2153.0':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 2153
//    
//    Attempting to convert '1e03':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 1000
//    
//    Attempting to convert '1300.0e-2':
//       None: Bad Format
//       AllowLeadingWhite, AllowTrailingWhite: Bad Format
//       Integer, AllowTrailingSign: Bad Format
//       AllowThousands, AllowCurrencySymbol: Bad Format
//       AllowDecimalPoint, AllowExponent: 13
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim values() As String = { " 214 ", "1,064", "(0)", "1241+", " + 214 ", " +214 ", "2153.0", "1e03", "1300.0e-2" }
      Dim whitespace As NumberStyles =  NumberStyles.AllowLeadingWhite Or NumberStyles.AllowTrailingWhite
      Dim styles() As NumberStyles = { NumberStyles.None, _
                                       whitespace, _
                                       NumberStyles.AllowLeadingSign Or NumberStyles.AllowTrailingSign Or whitespace, _
                                       NumberStyles.AllowThousands Or NumberStyles.AllowCurrencySymbol, _
                                       NumberStyles.AllowExponent Or NumberStyles.AllowDecimalPoint }

      ' Attempt to convert each number using each style combination.
      For Each value As String In values
         Console.WriteLine("Attempting to convert '{0}':", value)
         For Each style As NumberStyles In styles
            Try
               Dim number As UShort = UInt16.Parse(value, style)
               Console.WriteLine("   {0}: {1}", style, number)
            Catch e As FormatException
               Console.WriteLine("   {0}: Bad Format", style)
            End Try         
         Next
         Console.WriteLine()
      Next
   End Sub
End Module
' The example displays the following output:
'    Attempting to convert ' 214 ':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: 214
'       Integer, AllowTrailingSign: 214
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert '1,064':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: 1064
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert '(0)':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert '1241+':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: 1241
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert ' + 214 ':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert ' +214 ':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: 214
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: Bad Format
'    
'    Attempting to convert '2153.0':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: 2153
'    
'    Attempting to convert '1e03':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: 1000
'    
'    Attempting to convert '1300.0e-2':
'       None: Bad Format
'       AllowLeadingWhite, AllowTrailingWhite: Bad Format
'       Integer, AllowTrailingSign: Bad Format
'       AllowThousands, AllowCurrencySymbol: Bad Format
'       AllowDecimalPoint, AllowExponent: 13

注解

style 参数定义在 s 参数中允许的样式元素(如空格、正号或负号符号、组分隔符符号或小数点符号),以便分析操作成功。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 s parameter for the parse operation to succeed. style 必须是 NumberStyles 枚举中的位标志的组合。style must be a combination of bit flags from the NumberStyles enumeration. s 包含十六进制值的字符串表示形式时,style 参数会使此方法重载非常有用,当 s 表示的数值系统(十进制或十六进制)仅在运行时已知,或者当你希望禁止s中的空格或符号符号。The style parameter makes this method overload useful when s contains the string representation of a hexadecimal value, when the number system (decimal or hexadecimal) represented by s is known only at run time, or when you want to disallow white space or a sign symbol in s.

根据 style的值,s 参数可能包括以下元素:Depending on the value of style, the s parameter may include the following elements:

[ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws][ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]

方括号 ([ and ]) 中的元素是可选的。Elements in square brackets ([ and ]) are optional. 如果 style 包括 NumberStyles.AllowHexSpecifier,则 s 参数可能包含以下元素:If style includes NumberStyles.AllowHexSpecifier, the s parameter may contain the following elements:

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

下表对每个元素进行了描述。The following table describes each element.

元素Element 说明Description
wsws 可选空白。Optional white space. 如果 style 包含 NumberStyles.AllowLeadingWhite 标志,则空格可以出现在 s 的开头,如果 style 包含 NumberStyles.AllowTrailingWhite 标志,则它可以出现在 s 的末尾。White space can appear at the start of s if style includes the NumberStyles.AllowLeadingWhite flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingWhite flag.
$ 区域性特定的货币符号。A culture-specific currency symbol. 其在字符串中的位置由当前区域性的 NumberFormatInfo.CurrencyNegativePatternNumberFormatInfo.CurrencyPositivePattern 属性定义。Its position in the string is defined by the NumberFormatInfo.CurrencyNegativePattern and NumberFormatInfo.CurrencyPositivePattern properties of the current culture. 如果 style 包含 NumberStyles.AllowCurrencySymbol 标志,当前区域性的货币符号可以出现在 s 中。The current culture's currency symbol can appear in s if style includes the NumberStyles.AllowCurrencySymbol flag.
signsign 一个可选的符号。An optional sign. 如果 style 包含 NumberStyles.AllowLeadingSign 标志,则符号会出现在 s 的开头,如果 style 包含 NumberStyles.AllowTrailingSign 标志,则它可以出现在 s 的末尾。The sign can appear at the start of s if style includes the NumberStyles.AllowLeadingSign flag, and it can appear at the end of s if style includes the NumberStyles.AllowTrailingSign flag. 如果 style 包含 NumberStyles.AllowParentheses 标志,则可以在 s 中使用括号来表示负值。Parentheses can be used in s to indicate a negative value if style includes the NumberStyles.AllowParentheses flag. 但负号符号只能与零一起使用;否则,该方法将引发 OverflowExceptionHowever, the negative sign symbol can be used only with zero; otherwise, the method throws an OverflowException.
digitsdigits

fractional_digitsfractional_digits

exponential_digitsexponential_digits
介于0到9之间的一系列数字。A sequence of digits from 0 through 9. 对于fractional_digits,只有数字0有效。For fractional_digits, only the digit 0 is valid.
, 区域性特定的组分隔符符号。A culture-specific group separator symbol. 如果 style 包含 NumberStyles.AllowThousands 标志,当前区域性的组分隔符可能出现在 s 中。The current culture's group separator can appear in s if style includes the NumberStyles.AllowThousands flag.
.. 区域性特定的小数点符号。A culture-specific decimal point symbol. 如果 style 包含 NumberStyles.AllowDecimalPoint 标志,当前区域性的小数点符号会出现在 s 中。The current culture's decimal point symbol can appear in s if style includes the NumberStyles.AllowDecimalPoint flag. 只有数字0才能作为小数位出现,以便分析操作成功;如果fractional_digits包含任何其他数字,则会引发 FormatExceptionOnly 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. 如果 style 包含 NumberStyles.AllowExponent 标志,则 s 参数可以表示指数表示法中的数字。The s 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.

备注

无论 style 参数的值是什么,分析操作都将忽略 s 中任何终止的 NUL (U + 0000)字符。Any terminating NUL (U+0000) characters in s are ignored by the parsing operation, regardless of the value of the style argument.

只有数字(对应于 NumberStyles.None 样式)的字符串在 UInt16 类型的范围内时才会成功进行分析。A string with digits only (which corresponds to the NumberStyles.None style) always parses successfully if it is in the range of the UInt16 type. 大多数其余 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 成员如何影响可能出现在 s中的元素。The following table indicates how individual NumberStyles members affect the elements that may be present in s.

NumberStylesNumberStyles value s 中允许的元素以及数字Elements permitted in s in addition to digits
None 仅限数字元素。The digits element only.
AllowDecimalPoint 小数点(.)和小数位数元素。The decimal point (.) and fractional-digits elements.
AllowExponent "E" 或 "E" 字符(指示指数表示法)以及exponential_digitsThe "e" or "E" character, which indicates exponential notation, along with exponential_digits.
AllowLeadingWhite s开头的ws元素。The ws element at the start of s.
AllowTrailingWhite s末尾的ws元素。The ws element at the end of s.
AllowLeadingSign s开头的sign元素。The sign element at the start of s.
AllowTrailingSign s末尾的sign元素。The sign element at the end of s.
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. 但是,s 不能表示十六进制数或以指数表示法表示的数字。However, s cannot represent a hexadecimal number or a number in exponential notation.
Float s开头或结尾处的ws元素,在 s开头处进行签名,并在小数点(.)符号处进行签名The ws element at the start or end of s, sign at the start of s, and the decimal point (.) symbol. s 参数还可以使用指数表示法。The s parameter can also use exponential notation.
Number wssign、组分隔符()和小数点(.)元素。The ws, sign, group separator (,), and decimal point (.) elements.
Any 所有元素。All elements. s 不能表示十六进制数。However, s cannot represent a hexadecimal number.

不同于其他 NumberStyles 值,它们允许但不要求在 s中存在特定样式元素,NumberStyles.AllowHexSpecifier 样式值表示 s 中的单个数字字符始终解释为十六进制字符。Unlike the other NumberStyles values, which allow for, but do not require, the presence of particular style elements in s, the NumberStyles.AllowHexSpecifier style value means that the individual numeric characters in s are always interpreted as hexadecimal characters. 有效的十六进制字符为0-9、A-f 和 a-f。Valid hexadecimal characters are 0-9, A-F, and a-f. 前缀(如 "0x")不受支持,导致分析操作失败。A prefix, such as "0x", is not supported and causes the parse operation to fail. 可以与 style 参数组合的其他标志仅 NumberStyles.AllowLeadingWhiteNumberStyles.AllowTrailingWhiteThe only other flags that can be combined with the style parameter are NumberStyles.AllowLeadingWhite and NumberStyles.AllowTrailingWhite. NumberStyles 枚举包含复合数字样式,NumberStyles.HexNumber,其中包含两个空白标志。)(The NumberStyles enumeration includes a composite number style, NumberStyles.HexNumber, that includes both white-space flags.)

备注

如果 s 是十六进制数的字符串表示形式,则它的前面不能有将其视为十六进制数的任何修饰(如 0x&h)。If s 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.

s 参数是使用为当前系统区域性初始化 NumberFormatInfo 对象中的格式设置信息分析的。The s 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)

重要

此 API 不符合 CLS。

符合 CLS 的替代方案
System.Int32.Parse(String)

将数字的字符串表示形式转换为它的等效 16 位无符号整数。Converts the string representation of a number to its 16-bit unsigned integer equivalent.

public:
 static System::UInt16 Parse(System::String ^ s);
[System.CLSCompliant(false)]
public static ushort Parse (string s);
static member Parse : string -> uint16
Public Shared Function Parse (s As String) As UShort

参数

s
String

表示要转换的数字的字符串。A string that represents the number to convert.

返回

s 中包含的数字等效的 16 位无符号整数。A 16-bit unsigned integer equivalent to the number contained in s.

属性

异常

snulls is null.

s 的格式不正确。s is not in the correct format.

s 表示一个小于 MinValue 或大于 MaxValue 的数字。s represents a number less than MinValue or greater than MaxValue.

示例

下面的示例调用 Parse(String) 方法,将字符串数组中的每个元素转换为16位无符号整数。The following example calls the Parse(String) method to convert each element in a string array to an unsigned 16-bit integer.

using System;

public class Example
{
   public static void Main()
   {
      string[] values = { "-0", "17", "-12", "185", "66012", "+0", 
                          "", null, "16.1", "28.0", "1,034" };
      foreach (string value in values)
      {
         try {
            ushort number = UInt16.Parse(value);
            Console.WriteLine("'{0}' --> {1}", value, number);
         }
         catch (FormatException) {
            Console.WriteLine("'{0}' --> Bad Format", value);
         }
         catch (OverflowException) {   
            Console.WriteLine("'{0}' --> OverflowException", value);
         }
         catch (ArgumentNullException) {
            Console.WriteLine("'{0}' --> Null", value);
         }
      }                                 
   }
}
// The example displays the following output:
//       '-0' --> 0
//       '17' --> 17
//       '-12' --> OverflowException
//       '185' --> 185
//       '66012' --> OverflowException
//       '+0' --> 0
//       '' --> Bad Format
//       '' --> Null
//       '16.1' --> Bad Format
//       '28.0' --> Bad Format
//       '1,034' --> Bad Format
Module Example
   Public Sub Main()
      Dim values() As String = { "-0", "17", "-12", "185", "66012", _ 
                                 "+0", "", Nothing, "16.1", "28.0", _
                                 "1,034" }
      For Each value As String In values
         Try
            Dim number As UShort = UInt16.Parse(value)
            Console.WriteLine("'{0}' --> {1}", value, number)
         Catch e As FormatException
            Console.WriteLine("'{0}' --> Bad Format", value)
         Catch e As OverflowException   
            Console.WriteLine("'{0}' --> OverflowException", value)
         Catch e As ArgumentNullException
            Console.WriteLine("'{0}' --> Null", value)
         End Try
      Next                                 
   End Sub
End Module
' The example displays the following output:
'       '-0' --> 0
'       '17' --> 17
'       '-12' --> OverflowException
'       '185' --> 185
'       '66012' --> OverflowException
'       '+0' --> 0
'       '' --> Bad Format
'       '' --> Null
'       '16.1' --> Bad Format
'       '28.0' --> Bad Format
'       '1,034' --> Bad Format

注解

s 参数应为以下形式的数字的字符串表示形式。The s parameter should be the string representation of a number in the following form.

[ws][sign]digits[ws][ws][sign]digits[ws]

方括号 ([ and ]) 中的元素是可选的。Elements in square brackets ([ and ]) are optional. 下表对每个元素进行了描述。The following table describes each element.

元素Element 说明Description
wsws 可选空白。Optional white space.
signsign 一个可选的符号。An optional sign. 有效的符号字符由当前区域性的 NumberFormatInfo.NegativeSignNumberFormatInfo.PositiveSign 属性确定。Valid sign characters are determined by the NumberFormatInfo.NegativeSign and NumberFormatInfo.PositiveSign properties of the current culture. 但负号符号只能与零一起使用;否则,该方法将引发 OverflowExceptionHowever, the negative sign symbol can be used only with zero; otherwise, the method throws an OverflowException.
digitsdigits 介于0到9之间的一系列数字。A sequence of digits ranging from 0 to 9. 任何前导零都将被忽略。Any leading zeros are ignored.

备注

使用 NumberStyles.Integer 样式来解释由 s 参数指定的字符串。The string specified by the s 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.

s 参数是使用为当前系统区域性初始化 System.Globalization.NumberFormatInfo 对象中的格式设置信息分析的。The s parameter is parsed by using the formatting information in a System.Globalization.NumberFormatInfo object that is initialized for the current system culture. 有关详细信息,请参阅 NumberFormatInfo.CurrentInfoFor 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(String, IFormatProvider)

重要

此 API 不符合 CLS。

符合 CLS 的替代方案
System.Int32.Parse(String)

将指定区域性特定格式的数字的字符串表示形式转换为它的等效 16 位无符号整数。Converts the string representation of a number in a specified culture-specific format to its 16-bit unsigned integer equivalent.

public:
 static System::UInt16 Parse(System::String ^ s, IFormatProvider ^ provider);
[System.CLSCompliant(false)]
public static ushort Parse (string s, IFormatProvider provider);
static member Parse : string * IFormatProvider -> uint16
Public Shared Function Parse (s As String, provider As IFormatProvider) As UShort

参数

s
String

表示要转换的数字的字符串。A string that represents the number to convert.

provider
IFormatProvider

一个对象,提供有关 s 的区域性特定格式设置信息。An object that supplies culture-specific formatting information about s.

返回

s 中指定的数字等效的 16 位无符号整数。A 16-bit unsigned integer equivalent to the number specified in s.

属性

异常

snulls is null.

s 的格式不正确。s is not in the correct format.

s 表示一个小于 MinValue 或大于 MaxValue 的数字。s represents a number less than MinValue or greater than MaxValue.

示例

下面的示例实例化一个自定义区域性,它使用两个加号(+ +)作为其正号。The following example instantiates a custom culture that uses two plus signs (++) as its positive sign. 然后,它调用 Parse(String, IFormatProvider) 方法,通过使用表示此自定义区域性和固定区域性的 CultureInfo 对象来分析字符串数组。It then calls the Parse(String, IFormatProvider) method to parse an array of strings by using CultureInfo objects that represent both this custom culture and the invariant culture.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      // Define a custom culture that uses "++" as a positive sign. 
      CultureInfo ci = new CultureInfo("");
      ci.NumberFormat.PositiveSign = "++";
      // Create an array of cultures.
      CultureInfo[] cultures = { ci, CultureInfo.InvariantCulture };
      // Create an array of strings to parse.
      string[] values = { "++1403", "-0", "+0", "+16034", 
                          Int16.MinValue.ToString(), "14.0", "18012" };
      // Parse the strings using each culture.
      foreach (CultureInfo culture in cultures)
      {
         Console.WriteLine("Parsing with the '{0}' culture.", culture.Name);
         foreach (string value in values)
         {
            try {
               ushort number = UInt16.Parse(value, culture);
               Console.WriteLine("   Converted '{0}' to {1}.", value, number);
            }
            catch (FormatException) {
               Console.WriteLine("   The format of '{0}' is invalid.", value);
            }
            catch (OverflowException) {
               Console.WriteLine("   '{0}' is outside the range of a UInt16 value.", value);
            }               
         }
      }
   }
}
// The example displays the following output:
//       Parsing with the  culture.
//          Converted '++1403' to 1403.
//          Converted '-0' to 0.
//          The format of '+0' is invalid.
//          The format of '+16034' is invalid.
//          '-32768' is outside the range of a UInt16 value.
//          The format of '14.0' is invalid.
//          Converted '18012' to 18012.
//       Parsing with the '' culture.
//          The format of '++1403' is invalid.
//          Converted '-0' to 0.
//          Converted '+0' to 0.
//          Converted '+16034' to 16034.
//          '-32768' is outside the range of a UInt16 value.
//          The format of '14.0' is invalid.
//          Converted '18012' to 18012.
Imports System.Globalization

Module Example
   Public Sub Main()
      ' Define a custom culture that uses "++" as a positive sign. 
      Dim ci As CultureInfo = New CultureInfo("")
      ci.NumberFormat.PositiveSign = "++"
      ' Create an array of cultures.
      Dim cultures() As CultureInfo = { ci, CultureInfo.InvariantCulture }
      ' Create an array of strings to parse.
      Dim values() As String = { "++1403", "-0", "+0", "+16034", _
                                 Int16.MinValue.ToString(), "14.0", "18012" }
      ' Parse the strings using each culture.
      For Each culture As CultureInfo In cultures
         Console.WriteLine("Parsing with the '{0}' culture.", culture.Name)
         For Each value As String In values
            Try
               Dim number As UShort = UInt16.Parse(value, culture)
               Console.WriteLine("   Converted '{0}' to {1}.", value, number)
            Catch e As FormatException
               Console.WriteLine("   The format of '{0}' is invalid.", value)
            Catch e As OverflowException
               Console.WriteLine("   '{0}' is outside the range of a UInt16 value.", value)
            End Try               
         Next
      Next
   End Sub
End Module
' The example displays the following output:
'       Parsing with the  culture.
'          Converted '++1403' to 1403.
'          Converted '-0' to 0.
'          The format of '+0' is invalid.
'          The format of '+16034' is invalid.
'          '-32768' is outside the range of a UInt16 value.
'          The format of '14.0' is invalid.
'          Converted '18012' to 18012.
'       Parsing with the '' culture.
'          The format of '++1403' is invalid.
'          Converted '-0' to 0.
'          Converted '+0' to 0.
'          Converted '+16034' to 16034.
'          '-32768' is outside the range of a UInt16 value.
'          The format of '14.0' is invalid.
'          Converted '18012' to 18012.

注解

s 参数包含如下格式:The s parameter contains a number of the form:

[ws][sign]digits[ws][ws][sign]digits[ws]

方括号([和])中的项是可选的。Items in square brackets ([ and ]) are optional. 下表对每个元素进行了描述。The following table describes each element.

元素Element 说明Description
wsws 可选空白。Optional white space.
Signsign 可选符号,如果 s 表示值零,则为负号。An optional sign, or a negative sign if s represents the value zero.
数字digits 介于0到9之间的一系列数字。A sequence of digits ranging from 0 to 9.

使用 NumberStyles.Integer 样式来解释 s 参数。The s parameter is interpreted using the NumberStyles.Integer style. 除了字节值的十进制数字,只允许使用前导空格和尾随空格以及前导符号。In addition to the byte value's decimal digits, only leading and trailing spaces along with a leading sign is allowed. (如果存在负号,则 s 必须表示值为零,否则方法将引发 OverflowException。)若要将样式元素与 s中可以存在的区域性特定格式设置信息一起显式定义,请使用 Parse(String, NumberStyles, IFormatProvider) 方法。(If the negative sign is present, s must represent a value of zero or the method throws an OverflowException.) To explicitly define the style elements together with the culture-specific formatting information that can be present in s, use the Parse(String, NumberStyles, IFormatProvider) method.

provider 参数是其 GetFormat 方法返回 NumberFormatInfo 对象的 IFormatProvider 实现,该对象提供有关 s格式的区域性特定信息。The provider parameter is an IFormatProvider implementation whose GetFormat method returns a NumberFormatInfo object that provides culture-specific information about the format of s. 有三种方法可以使用 provider 参数向分析操作提供自定义格式设置信息:There are three ways to use the provider parameter to supply custom formatting information to the parse operation:

如果 null``provider,则使用当前区域性的 NumberFormatInfoIf provider is null, the NumberFormatInfo for the current culture is used.

另请参阅

适用于