NumberStyles Enum

Definisi

Menentukan gaya yang diizinkan dalam argumen string numerik yang diteruskan ke Parse metode dan TryParse dari jenis numerik integral dan floating-point.

Enumerasi ini mendukung kombinasi bitwise dari nilai yang termasuk di dalamnya.

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
Warisan
NumberStyles
Atribut

Bidang

AllowBinarySpecifier 1024

Menunjukkan bahwa string numerik mewakili nilai biner. Nilai biner yang valid mencakup digit numerik 0 dan 1. String yang diurai menggunakan gaya ini tidak menggunakan awalan; 0b tidak dapat digunakan. String yang diurai dengan AllowBinarySpecifier gaya akan selalu ditafsirkan sebagai nilai biner. Satu-satunya bendera yang dapat digabungkan dengan AllowBinarySpecifier adalah AllowLeadingWhite dan AllowTrailingWhite. Enumerasi NumberStyles mencakup gaya komposit, BinaryNumber, yang terdiri dari ketiga bendera ini.

AllowCurrencySymbol 256

Menunjukkan bahwa string numerik dapat berisi simbol mata uang. Simbol mata uang yang valid ditentukan oleh CurrencySymbol properti .

AllowDecimalPoint 32

Menunjukkan bahwa string numerik dapat memiliki titik desimal. NumberStyles Jika nilai menyertakan AllowCurrencySymbol bendera dan string yang diurai menyertakan simbol mata uang, karakter pemisah desimal ditentukan oleh CurrencyDecimalSeparator properti . Jika tidak, karakter pemisah desimal ditentukan oleh NumberDecimalSeparator properti .

AllowExponent 128

Menunjukkan bahwa string numerik dapat berada dalam notasi eksponensial. AllowExponent Bendera memungkinkan string yang diurai berisi eksponen yang dimulai dengan karakter "E" atau "e" dan diikuti dengan tanda positif atau negatif opsional dan bilangan bulat. Dengan kata lain, ia berhasil mengurai string dalam bentuk nnnExx, nnnE+xx, dan nnnE-xx. Ini tidak mengizinkan pemisah desimal atau masuk ke significand atau mantissa; untuk memungkinkan elemen-elemen ini dalam string diurai, gunakan AllowDecimalPoint bendera dan AllowLeadingSign , atau gunakan gaya komposit yang menyertakan bendera individual ini.

AllowHexSpecifier 512

Menunjukkan bahwa string numerik mewakili nilai heksadesimal. Nilai heksadesimal yang valid termasuk digit numerik 0-9 dan digit heksadesimal A-F dan a-f. String yang diurai menggunakan gaya ini tidak dapat diawali dengan "0x" atau "&h". String yang diurai dengan AllowHexSpecifier gaya akan selalu ditafsirkan sebagai nilai heksadesimal. Satu-satunya bendera yang dapat digabungkan dengan AllowHexSpecifier adalah AllowLeadingWhite dan AllowTrailingWhite. Enumerasi NumberStyles mencakup gaya komposit, HexNumber, yang terdiri dari ketiga bendera ini.

AllowLeadingSign 4

Menunjukkan bahwa string numerik dapat memiliki tanda depan. Karakter tanda di depan yang valid ditentukan oleh PositiveSign properti dan NegativeSign .

AllowLeadingWhite 1

Menunjukkan bahwa karakter spasi putih di depan dapat ada dalam string yang diurai. Karakter spasi putih yang valid memiliki nilai Unicode U+0009, U+000A, U+000B, U+000C, U+000D, dan U+0020. Perhatikan bahwa ini adalah subset karakter yang metodenya IsWhiteSpace(Char) mengembalikan true.

AllowParentheses 16

Menunjukkan bahwa string numerik dapat memiliki satu pasang tanda kurung yang menyertakan angka. Tanda kurung menunjukkan bahwa string yang akan diurai mewakili angka negatif.

AllowThousands 64

Menunjukkan bahwa string numerik dapat memiliki pemisah grup, seperti simbol yang memisahkan ratusan dari ribuan. NumberStyles Jika nilai menyertakan AllowCurrencySymbol bendera dan string yang akan diurai menyertakan simbol mata uang, karakter pemisah grup yang valid ditentukan oleh CurrencyGroupSeparator properti , dan jumlah digit di setiap grup ditentukan oleh CurrencyGroupSizes properti . Jika tidak, karakter pemisah grup yang valid ditentukan oleh NumberGroupSeparator properti , dan jumlah digit di setiap grup ditentukan oleh NumberGroupSizes properti .

AllowTrailingSign 8

Menunjukkan bahwa string numerik dapat memiliki tanda berikutnya. Karakter tanda berikutnya yang valid ditentukan oleh PositiveSign properti dan NegativeSign .

AllowTrailingWhite 2

Menunjukkan bahwa karakter spasi putih berikutnya dapat ada dalam string yang diurai. Karakter spasi putih yang valid memiliki nilai Unicode U+0009, U+000A, U+000B, U+000C, U+000D, dan U+0020. Perhatikan bahwa ini adalah subset karakter yang metodenya IsWhiteSpace(Char) mengembalikan true.

Any 511

Menunjukkan bahwa semua gaya kecuali AllowHexSpecifier digunakan. Ini adalah gaya angka komposit.

BinaryNumber 1027

Menunjukkan bahwa AllowLeadingWhitegaya , AllowTrailingWhite, dan AllowBinarySpecifier digunakan. Ini adalah gaya angka komposit.

Currency 383

Menunjukkan bahwa semua gaya kecuali AllowExponent dan AllowHexSpecifier digunakan. Ini adalah gaya angka komposit.

Float 167

Menunjukkan bahwa AllowLeadingWhitegaya , AllowTrailingWhite, AllowLeadingSign, AllowDecimalPoint, dan AllowExponent digunakan. Ini adalah gaya angka komposit.

HexNumber 515

Menunjukkan bahwa AllowLeadingWhitegaya , AllowTrailingWhite, dan AllowHexSpecifier digunakan. Ini adalah gaya angka komposit.

Integer 7

Menunjukkan bahwa AllowLeadingWhitegaya , AllowTrailingWhite, dan AllowLeadingSign digunakan. Ini adalah gaya angka komposit.

None 0

Menunjukkan bahwa tidak ada elemen gaya, seperti spasi putih di awal atau akhir, pemisah ribuan, atau pemisah desimal, dapat ada dalam string yang diurai. String yang akan diurai harus terdiri dari digit desimal integral saja.

Number 111

Menunjukkan bahwa AllowLeadingWhitegaya , , AllowTrailingWhiteAllowLeadingSign, AllowTrailingSign, AllowDecimalPointdan AllowThousands digunakan. Ini adalah gaya angka komposit.

Contoh

Contoh ini menunjukkan cara mengurai string ke dalam bilangan bulat 32-bit dengan menggunakan berbagai NumberStyles bendera.

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'.

Keterangan

Enumerasi NumberStyles terdiri dari dua jenis nilai enumerasi yang digunakan untuk mengurai representasi string nilai numerik:

  • Bendera bidang individual, yang menentukan elemen gaya tertentu (seperti spasi kosong dan pemisah grup) yang dapat ada dalam string yang diurai.

  • Gaya angka komposit, yang terdiri dari beberapa bendera bidang yang menentukan elemen gaya yang dapat ada dalam string yang diurai.

Kecuali untuk AllowHexSpecifier, masing-masing bendera bidang dalam NumberStyles enumerasi menentukan elemen gaya yang digunakan saat mengurai representasi string dari angka desimal. None menunjukkan bahwa hanya digit yang dapat ada dalam string yang diurai. Bendera bidang individual yang tersisa menentukan elemen gaya yang mungkin, tetapi tidak harus, ada dalam representasi string dari angka desimal agar operasi penguraian berhasil. Sebaliknya, AllowHexSpecifier bendera menunjukkan bahwa string yang akan diurai selalu ditafsirkan sebagai nilai heksadesimal. Satu-satunya bendera bidang individual yang dapat digunakan adalah AllowHexSpecifierAllowLeadingWhite dan AllowTrailingWhite. Enumerasi NumberStyles mencakup gaya angka komposit, HexNumber, yang terdiri dari ketiga bendera.

Simbol (seperti simbol mata uang, pemisah grup, pemisah desimal, dan tanda positif dan negatif) yang dapat muncul dalam string yang akan diurai ditentukan oleh anggota System.Globalization.NumberFormatInfo objek yang diteruskan baik secara implisit atau eksplisit ke Parse metode . Tabel anggota dalam topik ini menyediakan deskripsi setiap bendera individu dan menunjukkan hubungannya dengan NumberFormatInfo properti.

Tabel berikut ini mencantumkan gaya angka komposit dan menunjukkan bendera bidang individual mana yang disertakan. "1" dalam sel menunjukkan bahwa gaya angka komposit menyertakan gaya angka individual dalam baris tersebut. "0" menunjukkan bahwa gaya angka komposit tidak menyertakan gaya angka individual.

Apa pun Mata uang Mengambang Bilangan bulat Telepon 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)

Berlaku untuk

Lihat juga