[System.Serializable] [System.Runtime.InteropServices.ComVisible(true)] public enum NumberStyles
[<System.Flags>]
type NumberStyles = 
[<System.Flags>]
[<System.Serializable>]
type NumberStyles = 
[<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type NumberStyles = 
Public Enum NumberStyles
NumberStyles

指示数值字符串表示二进制值。 有效的二进制值包括数字 0 和 1。 使用此样式分析的字符串不使用前缀; 0b 不能使用。 使用 AllowBinarySpecifier 样式分析的字符串将始终解释为二进制值。 可与 AllowBinarySpecifier 组合的标志只有 AllowLeadingWhite AllowTrailingWhite NumberStyles 枚举包括由这三个标识组成的复合样式 BinaryNumber

指示数值字符串表示一个十六进制值。 有效的十六进制值包括数字 0-9 和十六进制数字 A-F 和 a-f。 使用此样式分析的字符串不能以“0x”或“&h”为前缀。 使用 AllowHexSpecifier 样式分析的字符串总是被解释为一个十六进制值。 可与 AllowHexSpecifier 组合的标志只有 AllowLeadingWhite AllowTrailingWhite NumberStyles 枚举包括由这三个标识组成的复合样式 HexNumber

此示例演示如何使用各种 NumberStyles 标志将字符串解析为 32 位整数。

using namespace System;
using namespace System::Text;
using namespace System::Globalization;
int main()
    // Parse the string as a hex value and display the
    // value as a decimal.
    String^ numberString = "A";
    int stringValue = Int32::Parse(numberString, NumberStyles::HexNumber);
    Console::WriteLine("{0} in hex = {1} in decimal.",
        numberString, stringValue);
    // Parse the string, allowing a leading sign, and ignoring
    // leading and trailing white spaces.
    numberString = "    -45   ";
    stringValue =Int32::Parse(numberString, NumberStyles::AllowLeadingSign |
        NumberStyles::AllowLeadingWhite | NumberStyles::AllowTrailingWhite);
    Console::WriteLine("'{0}' parsed to an int is '{1}'.",
        numberString, stringValue);
    // Parse the string, allowing parentheses, and ignoring
    // leading and trailing white spaces.
    numberString = "    (37)   ";
    stringValue = Int32::Parse(numberString, NumberStyles::AllowParentheses |
        NumberStyles::AllowLeadingSign | NumberStyles::AllowLeadingWhite |
        NumberStyles::AllowTrailingWhite);
    Console::WriteLine("'{0}' parsed to an int is '{1}'.",
        numberString, stringValue);
// This code produces the following output.
// A in hex = 10 in decimal.
// '    -45   ' parsed to an int is '-45'.
// '    (37)   ' parsed to an int is '-37'.
using System;
using System.Text;
using System.Globalization;
public sealed class App
    static void Main()
        // Parse the string as a hex value and display the value as a decimal.
        String num = "A";
        int val = int.Parse(num, NumberStyles.HexNumber);
        Console.WriteLine("{0} in hex = {1} in decimal.", num, val);
        // Parse the string, allowing a leading sign, and ignoring leading and trailing white spaces.
        num = "    -45   ";
        val = int.Parse(num, NumberStyles.AllowLeadingSign |
            NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite);
        Console.WriteLine("'{0}' parsed to an int is '{1}'.", num, val);
        // Parse the string, allowing parentheses, and ignoring leading and trailing white spaces.
        num = "    (37)   ";
        val = int.Parse(num, NumberStyles.AllowParentheses | NumberStyles.AllowLeadingSign |                         NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite);
        Console.WriteLine("'{0}' parsed to an int is '{1}'.", num, val);
// This code produces the following output.
// A in hex = 10 in decimal.
// '    -45   ' parsed to an int is '-45'.
// '    (37)   ' parsed to an int is '-37'.
Imports System.Globalization
Imports System.Text
Public Module Example
   Public Sub Main() 
      ' Parse the string as a hex value and display the value as a decimal.
      Dim num As String = "A"
      Dim val As Integer = Int32.Parse(num, NumberStyles.HexNumber)
      Console.WriteLine("{0} in hex = {1} in decimal.", num, val)
      ' Parse the string, allowing a leading sign, and ignoring leading and trailing white spaces.
      num = "    -45   "
      val = Integer.Parse(num, NumberStyles.AllowLeadingSign Or 
                               NumberStyles.AllowLeadingWhite Or 
                               NumberStyles.AllowTrailingWhite)
      Console.WriteLine("'{0}' parsed to an integer is '{1}'.", num, val)
      ' Parse the string, allowing parentheses, and ignoring leading and trailing white spaces.
      num = "    (37)   "
      val = Integer.Parse(num, NumberStyles.AllowParentheses Or 
                               NumberStyles.AllowLeadingSign Or
                               NumberStyles.AllowLeadingWhite Or 
                               NumberStyles.AllowTrailingWhite)
      Console.WriteLine("'{0}' parsed to an integer is '{1}'.", num, val)
   End Sub
End Module
' The example displays the following output:
'       A in hex = 10 in decimal.
'       '    -45   ' parsed to an int is '-45'.
'       '    (37)   ' parsed to an int is '-37'.
	

枚举 NumberStyles 由两种类型的枚举值组成,用于分析数值的字符串表示形式:

  • 单个字段标志,用于定义特定样式元素 (,例如可以存在于分析的字符串中的空格和组分隔符) 。
  • 复合数字样式,由多个字段标志组成,这些标志定义可存在于分析字符串中的样式元素。
  • 除了 AllowHexSpecifier,枚举中的 NumberStyles 单个字段标志定义在分析十进制数的字符串表示形式时使用的样式元素。 None 指示分析的字符串中只能存在数字。 剩余的单个字段标志定义样式元素,这些样式元素可能(但不一定)存在于十进制数的字符串表示形式中,以便分析操作成功。 相比之下,标志 AllowHexSpecifier 指示要分析的字符串始终解释为十六进制值。 唯一可以与 一起使用 AllowHexSpecifier 的单个字段标志是 AllowLeadingWhiteAllowTrailingWhiteNumberStyles枚举包括一个复合数字样式 ,HexNumber它由所有三个标志组成。

    可出现在要分析的字符串中的符号 (,例如货币符号、组分隔符、小数点分隔符以及正号和负号) ,由隐式或显式Parse传递给 方法的对象成员System.Globalization.NumberFormatInfo定义。 本主题中的成员表提供了每个单独标志的说明,并指示其与 NumberFormatInfo 属性的关系。

    下表列出了复合数字样式,并指示它们包括哪些单独的字段标志。 单元格中的“1”表示复合数字样式包括该行中的单个数字样式。 “0”表示复合数字样式不包括单个数字样式。