NumberStyles 列挙型

定義

整数数値型と浮動小数点数値型の Parse メソッドおよび TryParse メソッドに渡される数値文字列引数で使用できるスタイルを決定します。

この列挙体は、メンバー値のビットごとの組み合わせをサポートしています。

public enum class NumberStyles
[System.Flags]
public enum NumberStyles
[System.Flags]
[System.Serializable]
public enum NumberStyles
[System.Flags]
[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
属性

フィールド

AllowBinarySpecifier 1024

数値文字列がバイナリ値を表していることを示します。 有効なバイナリ値には、数値 0 と 1 が含まれます。 このスタイルを使用して解析される文字列では、プレフィックスは使用されません。 0b は使用できません。 スタイルで AllowBinarySpecifier 解析される文字列は、常にバイナリ値として解釈されます。 AllowBinarySpecifier と組み合わせることのできるフラグは、AllowLeadingWhiteAllowTrailingWhite のみです。 NumberStyles 列挙体には複合スタイル BinaryNumber があり、これら 3 つのフラグで構成されます。

AllowCurrencySymbol 256

数値文字列に通貨記号を含めることができることを示します。 有効な通貨記号は、CurrencySymbol プロパティによって決定されます。

AllowDecimalPoint 32

数値文字列に小数点を使用できることを示します。 NumberStyles 値に AllowCurrencySymbol フラグが含まれ、解析された文字列に通貨記号が含まれる場合、小数点記号は CurrencyDecimalSeparator プロパティによって決定されます。 それ以外の場合、小数点記号は、NumberDecimalSeparator プロパティによって決定されます。

AllowExponent 128

数値文字列に指数表記を使用できることを示します。 AllowExponent フラグを使用すると、"E" または "e" で始まり、その後に省略可能な正または負の符号と整数が続く指数を、解析対象文字列に含めることができます。 つまり、nnnExxnnnE+xx、および nnnE-xx 形式の文字列を正常に解析します。 仮数または仮数部では小数点記号または符号を使用することはできません。解析対象の文字列にこれらの要素を含めるには、AllowDecimalPoint フラグと AllowLeadingSign フラグを使用するか、これらの個々のフラグを含む複合スタイルを使用します。

AllowHexSpecifier 512

数値文字列が 16 進数値を表すことを示します。 有効な 16 進数値には、0 - 9 の範囲の数字と A - F および a - f の範囲の 16 進数の数字を使用できます。 このスタイルを使用して解析される文字列の先頭に "0x" または "&h" を付けることはできません。 AllowHexSpecifier スタイルで解析される文字列は、常に 16 進値として解釈されます。 AllowHexSpecifier と組み合わせることのできるフラグは、AllowLeadingWhiteAllowTrailingWhite のみです。 NumberStyles 列挙体には複合スタイル HexNumber があり、これら 3 つのフラグで構成されます。

AllowLeadingSign 4

数値文字列に先行する符号を使用できることを示します。 有効な先行する符号の文字は、PositiveSign プロパティと NegativeSign プロパティによって決定します。

AllowLeadingWhite 1

先行する空白文字を解析対象の文字列に使用できることを示します。 有効な空白文字の Unicode 値は、U+0009、U+000A、U+000B、U+000C、U+000D、および U+0020 です。 これは、IsWhiteSpace(Char) メソッドが true を返す文字のサブセットです。

AllowParentheses 16

数値文字列に、その数値を囲む 1 ペアのかっこを使用できることを示します。 かっこは、解析対象の文字列が負の値を表すことを示します。

AllowThousands 64

数値文字列に、グループ区切り文字 (たとえば 100 の桁と 1000 の桁を区切る記号) を使用できることを示します。 値に NumberStyles フラグが AllowCurrencySymbol 含まれており、解析される文字列に通貨記号が含まれている場合、有効なグループ区切り文字は プロパティによって CurrencyGroupSeparator 決定され、各グループの桁数は プロパティによって CurrencyGroupSizes 決定されます。 それ以外の場合、有効なグループ区切り文字は、NumberGroupSeparator プロパティによって決定し、各グループの桁数は、NumberGroupSizes プロパティによって決定します。

AllowTrailingSign 8

数値文字列に、後続する符号を使用できることを示します。 有効な末尾の符号の文字は、PositiveSign プロパティと NegativeSign プロパティによって決定します。

AllowTrailingWhite 2

末尾の空白文字を解析対象の文字列に使用できることを示します。 有効な空白文字の Unicode 値は、U+0009、U+000A、U+000B、U+000C、U+000D、および U+0020 です。 これは、IsWhiteSpace(Char) メソッドが true を返す文字のサブセットです。

Any 511

AllowHexSpecifier を除くすべてのスタイルを使用することを示します。 これは複合数値スタイルです。

BinaryNumber 1027

AllowLeadingWhiteAllowTrailingWhiteAllowBinarySpecifier の各スタイルを使用することを示します。 これは複合数値スタイルです。

Currency 383

AllowExponentAllowHexSpecifier を除くすべてのスタイルを使用することを示します。 これは複合数値スタイルです。

Float 167

AllowLeadingWhiteAllowTrailingWhiteAllowLeadingSignAllowDecimalPointAllowExponent の各スタイルを使用することを示します。 これは複合数値スタイルです。

HexNumber 515

AllowLeadingWhiteAllowTrailingWhiteAllowHexSpecifier の各スタイルを使用することを示します。 これは複合数値スタイルです。

Integer 7

AllowLeadingWhiteAllowTrailingWhiteAllowLeadingSign の各スタイルを使用することを示します。 これは複合数値スタイルです。

None 0

スタイル要素 (先行する空白、後続の空白、桁区切り記号、小数点の記号など) を解析対象の文字列に含めることができないことを示します。 解析対象の文字列は、整数部のみで構成されている必要があります。

Number 111

AllowLeadingWhiteAllowTrailingWhiteAllowLeadingSignAllowTrailingSignAllowDecimalPointAllowThousands の各スタイルを使用することを示します。 これは複合数値スタイルです。

この例では、さまざまな 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 、数値の文字列表現を解析するために使用される 2 種類の列挙値で構成されます。

  • 個々のフィールド フラグ。解析された文字列に存在できる特定のスタイル要素 (空白やグループ区切り記号など) を定義します。

  • 複合数値スタイル。解析された文字列に存在できるスタイル要素を定義する複数のフィールド フラグで構成されます。

AllowHexSpecifier除き、列挙体の個々の NumberStyles フィールド フラグは、10 進数の文字列表現を解析するときに使用されるスタイル要素を定義します。 None は、解析された文字列に数字のみが存在できることを示します。 残りの個々のフィールド フラグは、解析操作を成功させるために、10 進数の文字列表現に存在する可能性がありますが、そうである必要はないスタイル要素を定義します。 これに対し、 フラグは AllowHexSpecifier 、解析される文字列が常に 16 進値として解釈されることを示します。 で AllowHexSpecifier 使用できる個々のフィールド フラグは AllowLeadingWhiteAllowTrailingWhiteのみです。 列挙には NumberStylesHexNumber3 つのすべてのフラグで構成される複合数値スタイル が含まれています。

解析する文字列に表示できる記号 (通貨記号、グループ区切り記号、小数点記号、正符号と負符号など) は、 メソッドに暗黙的または明示的にParse渡されるオブジェクトのSystem.Globalization.NumberFormatInfoメンバーによって定義されます。 このトピックのメンバー テーブルでは、各フラグについて説明し、プロパティとの関係を NumberFormatInfo 示します。

次の表に、複合数値スタイルの一覧を示し、含める個々のフィールド フラグを示します。 セルの "1" は、複合数値スタイルにその行の個々の番号スタイルが含まれていることを示します。 "0" は、複合数値スタイルに個々の数値スタイルが含まれていないことを示します。

Any Currency Float Integer Number HexNumber
AllowHexSpecifier (0x0200) 0 0 0 0 0 1
AllowCurrencySymbol (0x0100) 1 1 0 0 0 0
AllowExponent (0x0080) 1 0 1 0 0 0
AllowThousands (0x0040) 1 1 0 0 1 0
AllowDecimalPoint (0x0020) 1 1 1 0 1 0
AllowParentheses (0x0010) 1 1 0 0 0 0
AllowTrailingSign (0x0008) 1 1 0 0 1 0
AllowLeadingSign (0x0004) 1 1 1 1 1 0
AllowTrailingWhite (0x0002) 1 1 1 1 1 1
AllowLeadingWhite (0x0001) 1 1 1 1 1 1
(0x1ff) (0x17f) (0x0a7) (0x007) (0x06f) (0x203)

適用対象

こちらもご覧ください