Nyelv

BigInteger.Parse Metódus

Definíció

Egy szám sztringképét az azzal egyenértékűvé BigInteger alakítja.

Túlterhelések

Név Description
Parse(String, NumberStyles, IFormatProvider)

Egy szám sztring-ábrázolását konvertálja egy megadott stílusban és kultúraspecifikus formátumban annak megfelelőjeként BigInteger .

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

A megadott írásvédett karaktertartományban lévő szám ábrázolását konvertálja a megadott stílusban annak megfelelőjeként BigInteger .

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

Egy adott kultúraspecifikus formátumban lévő szám sztringképét annak megfelelőjeként BigInteger alakítja át.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Több karakterből álló elemet elemez egy értékben.

Parse(ReadOnlySpan<Byte>, IFormatProvider)
Parse(String)

Egy szám sztringképét az azzal egyenértékűvé BigInteger alakítja.

Parse(String, NumberStyles)

Egy adott stílusban lévő szám sztringképét a megfelelőre BigInteger alakítja át.

Parse(String, NumberStyles, IFormatProvider)

Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs

Egy szám sztring-ábrázolását konvertálja egy megadott stílusban és kultúraspecifikus formátumban annak megfelelőjeként BigInteger .

public:
 static System::Numerics::BigInteger Parse(System::String ^ value, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
 static System::Numerics::BigInteger Parse(System::String ^ value, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<System::Numerics::BigInteger>::Parse;
public static System.Numerics.BigInteger Parse(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

Paraméterek

value
String

Egy átalakítandó számot tartalmazó sztring.

style
NumberStyles

A számbavételi értékek bitenkénti kombinációja, amely megadja a megengedett formátumot value.

provider
IFormatProvider

Egy objektum, amely kultúraspecifikus formázási információkat tartalmaz a fájlról value.

Válaszok

A paraméterben value megadott számmal egyenértékű érték.

Megvalósítás

Kivételek

style nem érték NumberStyles .

-vagy-

styleA AllowHexSpecifier egy másik értékkel együtt tartalmazza a HexNumber jelölőt.

value az null.

value nem felel meg a megadott bemeneti mintának style.

Példák

Az alábbi példa több hívást indít a metódushoz az Parse(String, NumberStyles, IFormatProvider) értékek és style paraméterek különböző kombinációinak provider használatával.

// 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
    printfn $"""{BigInteger.Parse("  -300   ", NumberStyles.Integer, CultureInfo.CurrentCulture)}"""

    // Call parse with default values of style and provider supporting tilde as negative sign
    printfn $"""{BigInteger.Parse("   ~300  ", NumberStyles.Integer, new BigIntegerFormatProvider())}"""

    // Call parse with only AllowLeadingWhite and AllowTrailingWhite
    // Exception thrown because of presence of negative sign
    try
        printfn
            $"""{BigInteger.Parse(
                     "    ~300   ",
                     NumberStyles.AllowLeadingWhite ||| NumberStyles.AllowTrailingWhite,
                     new BigIntegerFormatProvider()
                 )}"""
    with :? FormatException as e ->
        printfn $"{e.GetType().Name}: \n   {e.Message}"

    // Call parse with only AllowHexSpecifier
    // Exception thrown because of presence of negative sign
    try
        printfn $"""{BigInteger.Parse("-3af", NumberStyles.AllowHexSpecifier, new BigIntegerFormatProvider())}"""
    with :? FormatException as e ->
        printfn $"{e.GetType().Name}: \n   {e.Message}"

    // Call parse with only NumberStyles.None
    // Exception thrown because of presence of white space and sign
    try
        printfn $"""{BigInteger.Parse(" -300 ", NumberStyles.None, new BigIntegerFormatProvider())}"""
    with :? FormatException as e ->
        printfn $"{e.GetType().Name}: \n   {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.

A metódushoz Parse(String, NumberStyles, IFormatProvider) intézett egyes hívások száma az alábbi BigIntegerFormatProvider osztály egy példányát adja át, amely negatív jelként egy tilde (~) értéket határoz meg.

public class BigIntegerFormatProvider : IFormatProvider
{
   public object GetFormat(Type formatType)
   {
      if (formatType == typeof(NumberFormatInfo))
      {
         NumberFormatInfo numberFormat = new NumberFormatInfo();
         numberFormat.NegativeSign = "~";
         return numberFormat;
      }
      else
      {
         return null;
      }
   }
}
type BigIntegerFormatProvider() =
    interface IFormatProvider with

        member _.GetFormat(formatType: Type) =
            if formatType = typeof<NumberFormatInfo> then
                let numberFormat = NumberFormatInfo()
                numberFormat.NegativeSign <- "~"
                numberFormat
            else
                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

Megjegyzések

A style paraméter meghatározza azokat a stíluselemeket (például a szóközt, a pozitív vagy negatív jelszimbólumot, a csoportelválasztó szimbólumot vagy a tizedesjelet), amelyek a paraméterben value engedélyezve vannak az elemzési művelet sikeres végrehajtásához. styles az enumerálás bitjelölőinek kombinációjának NumberStyles kell lennie. A style paraméter hasznossá teszi ezt a metódust, ha value egy hexadecimális érték sztring-ábrázolását tartalmazza, ha az általuk value képviselt számrendszer (decimális vagy hexadecimális) csak futásidőben ismert, vagy ha ki szeretné tiltani a szóközt vagy a jel szimbólumát.value

Az értéktől stylefüggően a paraméter a value következő elemeket tartalmazhatja:

[ws][$][jel][számjegyek;]számjegyek[.fractional_digits][E[jel]exponential_digits][ws]

Ha style tartalmazza NumberStyles.AllowHexSpecifier, a paraméter a value következő elemeket tartalmazhatja:

[ws]hexdigits[ws]

A szögletes zárójelek ([ és ]) elemei nem kötelezőek. Az alábbi táblázat az egyes elemeket ismerteti.

Elem Leírás
Ws Nem kötelező üres terület. Ha a jelölőt is magában foglaljavalue, az elején styleNumberStyles.AllowLeadingWhite fehér terület jelenhet meg, és a jelölőt is tartalmazó value terület végén styleNumberStyles.AllowTrailingWhite jelenhet meg.
$ Kultúraspecifikus pénznemszimbólum. A sztringben elfoglalt helyét a NumberFormatInfo.CurrencyNegativePattern paraméter által NumberFormatInfo.CurrencyPositivePattern jelzett kultúra és provider tulajdonságok határozzák meg. Az aktuális kultúra pénznemszimbóluma akkor jelenhet meg, value ha style tartalmazza a jelölőt NumberStyles.AllowCurrencySymbol .
jel Nem kötelező jel. A jel akkor jelenhet meg, ha tartalmazza a jelölőt, és a végén, value ha style tartalmazza a jelölőtNumberStyles.AllowLeadingSign.valuestyleNumberStyles.AllowTrailingSign Zárójelekkel negatív értéket jelölhet value , ha style a NumberStyles.AllowParentheses jelölőt is tartalmazza.
Számjegy

fractional_digits

exponential_digits
Számjegyek sorozata 0 és 9 között. A fractional_digits esetében csak a 0 számjegy érvényes.
, Kultúraspecifikus csoportelválasztó szimbólum. A megadott kultúra provider csoportelválasztó szimbóluma akkor jelenhet meg value , ha style tartalmazza a jelölőt NumberStyles.AllowThousands .
. Kultúraspecifikus tizedesjel. A kijelölt kultúra provider tizedesjele akkor jelenhet meg, value ha style tartalmazza a jelölőt NumberStyles.AllowDecimalPoint . A sikeres elemzési művelethez csak a 0 számjegy jelenhet meg tört számjegyként; ha fractional_digits bármilyen más számjegyet is tartalmaz, FormatException akkor a karaktert a függvény eldobja.
E Az "e" vagy "E" karakter, amely azt jelzi, hogy az érték exponenciális (tudományos) jelölésben jelenik meg. A value paraméter exponenciális jelöléssel jelölhet egy számot, ha style tartalmazza a jelölőt NumberStyles.AllowExponent .
hexdigits Hexadecimális számjegyek sorozata 0 és f között, vagy 0 és F között.

Note

A befejező NUL (U+0000) karaktereket s az elemzési művelet figyelmen kívül hagyja, függetlenül az style argumentum értékétől.

A csak számjegyekkel rendelkező sztringek (amelyek megfelelnek a NumberStyles.None stílusnak) mindig sikeresen elemezhetők. A fennmaradó NumberStyles tagok többsége a bemeneti sztringben esetleg jelen lévő, de nem kötelező elemeket szabályozza. Az alábbi táblázat azt mutatja be, hogy az egyes NumberStyles tagok hogyan befolyásolják a benne található valueelemeket.

NumberStyles érték A számjegyeken kívül az értékben engedélyezett elemek
None Csak a számjegyek elem.
AllowDecimalPoint A tizedesjel (.) és a törtjegyű elemek.
AllowExponent Az "e" vagy "E" karakter, amely exponenciális jelölést jelez. és exponential_digits.
AllowLeadingWhite A ws elem az elején value.
AllowTrailingWhite A ws elem a végén value.
AllowLeadingSign A jelelem a következő elején: .value
AllowTrailingSign A jelelem a végén value.
AllowParentheses A numerikus értéket tartalmazó zárójelek formájában megjelenő jelelem .
AllowThousands A csoportelválasztó (,) elem.
AllowCurrencySymbol A pénznem ($) elem.
Currency Minden elem. value Nem jelölhet azonban hexadecimális számot vagy exponenciális számokat.
Float A ws elem a kezdő vagy a végén value, a jel elején value, és a decimális pont (.) szimbólum. A value paraméter exponenciális jelölést is használhat.
Number A ws, signcsoportelválasztó (,) és decimális (.) elemek.
Any Minden elem. value A hexadecimális szám azonban nem jelölhető.

Important

Ha a Parse metódussal egy olyan érték sztringképének BigInteger kerekítésére használja, amelyet a ToString metódus adott ki, a metódust az "R" formátumjelölővel kell használnia BigInteger.ToString(String) az BigInteger érték sztring-ábrázolásának létrehozásához. Ellenkező esetben a BigInteger sztringábrázolás csak az eredeti érték 50 legjelentősebb számjegyét őrzi meg, és az adatok elveszhetnek, amikor a metódust Parse használja az BigInteger érték visszaállítására.

A többi NumberStyles értéktől eltérően, amelyek lehetővé teszik, de nem igénylik bizonyos stíluselemek valuejelenlétét, a NumberStyles.AllowHexSpecifier stílusérték azt jelenti, hogy az egyes numerikus karakterek value mindig hexadecimális karakterekként vannak értelmezve. Az érvényes hexadecimális karakterek: 0-9, A-F és a-f. A paraméterrel style kombinálható egyéb jelzők a következők NumberStyles.AllowLeadingWhite : és NumberStyles.AllowTrailingWhite. (Az NumberStyles enumerálás egy összetett számstílust tartalmaz, HexNumberamely a szóközjeleket is tartalmazza.)

Note

Ha value egy hexadecimális szám sztringképe, akkor nem előzhető meg olyan díszítés (például 0x vagy &h), amely hexadecimális számként különbözteti meg. Ez a konvertálás sikertelenségéhez vezet.

Ha value hexadecimális sztring, akkor a Parse(String, NumberStyles) metódus negatív számként értelmezi value a két egymást kiegészítő ábrázolással tárolt számot, ha az első két hexadecimális számjegye nagyobb vagy egyenlő 0x80. Más szóval a metódus az első bájt value legmagasabb rendű bitét jelbitként értelmezi. Annak érdekében, hogy a hexadecimális sztring helyesen pozitív számként legyen értelmezve, az első számjegynek value nulla értékűnek kell lennie. A metódus például negatív értékként értelmezi 0x80 , de vagy pozitív értékként értelmezi 0x0800x0080 . Az alábbi példa a negatív és pozitív értékeket képviselő hexadecimális sztringek közötti különbséget mutatja be.

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.
open System.Globalization
open System.Numerics

let hexStrings =
    [| "80"
       "E293"
       "F9A2FF"
       "FFFFFFFF"
       "080"
       "0E293"
       "0F9A2FF"
       "0FFFFFFFF"
       "0080"
       "00E293"
       "00F9A2FF"
       "00FFFFFFFF" |]

for hexString in hexStrings do
    let number = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier)
    printfn $"Converted 0x{hexString} to {number:N0}."
// 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.

A provider paraméter implementáció IFormatProvider . A GetFormat metódus egy NumberFormatInfo objektumot ad vissza, amely kultúraspecifikus információkat nyújt a formátumáról value. Általában provider az alábbiak bármelyike lehet:

  • Olyan CultureInfo objektum, amely a numerikus formázási információkat biztosító kultúrát jelöli. A GetFormat metódus a NumberFormatInfo numerikus formázási adatokat tartalmazó objektumot adja vissza.

  • Formázási NumberFormatInfo információkat tartalmazó objektum. (A implementációja GetFormat csak önmagát adja vissza.)

  • Egyéni objektum, amely a metódust implementálja IFormatProvider és használja a GetFormat formázási információkat biztosító objektum példányosítására és visszaadására NumberFormatInfo .

Ha provider igen null, akkor a rendszer az NumberFormatInfo aktuális kultúra objektumát használja.

Lásd még

A következőre érvényes:

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs

A megadott írásvédett karaktertartományban lévő szám ábrázolását konvertálja a megadott stílusban annak megfelelőjeként BigInteger .

public static System.Numerics.BigInteger Parse(ReadOnlySpan<char> value, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
public static System.Numerics.BigInteger Parse(ReadOnlySpan<char> value, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = default);
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 = Nothing) As BigInteger

Paraméterek

value
ReadOnlySpan<Char>

A konvertálni kívánt számot tartalmazó karakterek írásvédett száma.

style
NumberStyles

A számbavételi értékek bitenkénti kombinációja, amely megadja a megengedett formátumot value.

provider
IFormatProvider

Egy objektum, amely kultúraspecifikus formázási információkat tartalmaz a fájlról value.

Válaszok

A paraméterben value megadott számmal egyenértékű érték.

Megvalósítás

Kivételek

style nem érték NumberStyles .

-vagy-

styleA AllowHexSpecifier egy másik értékkel együtt tartalmazza a HexNumber jelölőt.

value az null.

value nem felel meg a megadott bemeneti mintának style.

Megjegyzések

A style paraméter meghatározza azokat a stíluselemeket (például a szóközt, a pozitív vagy negatív jelszimbólumot, a csoportelválasztó szimbólumot vagy a tizedesjelet), amelyek a paraméterben value engedélyezve vannak az elemzési művelet sikeres végrehajtásához. styles az enumerálás bitjelölőinek kombinációjának NumberStyles kell lennie. A style paraméter hasznossá teszi ezt a metódust, ha value hexadecimális érték ábrázolását tartalmazza, ha az általuk value képviselt számrendszer (decimális vagy hexadecimális) csak futáskor ismert, vagy ha le szeretné tiltani a szóközt vagy a jel szimbólumát.value

Az értéktől stylefüggően a paraméter a value következő elemeket tartalmazhatja:

[ws][$][jel][számjegyek;]számjegyek[.fractional_digits][E[jel]exponential_digits][ws]

Ha style tartalmazza NumberStyles.AllowHexSpecifier, a paraméter a value következő elemeket tartalmazhatja:

[ws]hexdigits[ws]

A szögletes zárójelek ([ és ]) elemei nem kötelezőek. Az alábbi táblázat az egyes elemeket ismerteti.

Elem Leírás
Ws Nem kötelező üres terület. Ha a jelölőt is magában foglaljavalue, az elején styleNumberStyles.AllowLeadingWhite fehér terület jelenhet meg, és a jelölőt is tartalmazó value terület végén styleNumberStyles.AllowTrailingWhite jelenhet meg.
$ Kultúraspecifikus pénznemszimbólum. Pozícióját value a NumberFormatInfo.CurrencyNegativePattern paraméter által NumberFormatInfo.CurrencyPositivePattern jelzett kultúra és provider tulajdonságok határozzák meg. Az aktuális kultúra pénznemszimbóluma akkor jelenhet meg, value ha style tartalmazza a jelölőt NumberStyles.AllowCurrencySymbol .
jel Nem kötelező jel. A jel akkor jelenhet meg, ha tartalmazza a jelölőt, és a végén, value ha style tartalmazza a jelölőtNumberStyles.AllowLeadingSign.valuestyleNumberStyles.AllowTrailingSign Zárójelekkel negatív értéket jelölhet value , ha style a NumberStyles.AllowParentheses jelölőt is tartalmazza.
Számjegy

fractional_digits

exponential_digits
Számjegyek sorozata 0 és 9 között. A fractional_digits esetében csak a 0 számjegy érvényes.
, Kultúraspecifikus csoportelválasztó szimbólum. A megadott kultúra provider csoportelválasztó szimbóluma akkor jelenhet meg value , ha style tartalmazza a jelölőt NumberStyles.AllowThousands .
. Kultúraspecifikus tizedesjel. A kijelölt kultúra provider tizedesjele akkor jelenhet meg, value ha style tartalmazza a jelölőt NumberStyles.AllowDecimalPoint . A sikeres elemzési művelethez csak a 0 számjegy jelenhet meg tört számjegyként; ha fractional_digits bármilyen más számjegyet is tartalmaz, FormatException akkor a karaktert a függvény eldobja.
E Az "e" vagy "E" karakter, amely azt jelzi, hogy az érték exponenciális (tudományos) jelölésben jelenik meg. A value paraméter exponenciális jelöléssel jelölhet egy számot, ha style tartalmazza a jelölőt NumberStyles.AllowExponent .
hexdigits Hexadecimális számjegyek sorozata 0 és f között, vagy 0 és F között.

Note

A befejező NUL (U+0000) karaktereket s az elemzési művelet figyelmen kívül hagyja, függetlenül az style argumentum értékétől.

A value csak számjegyekkel rendelkező (a NumberStyles.None stílusnak megfelelő) elemek mindig sikeresen elemezhetők. A fennmaradó NumberStyles tagok többsége azokat az elemeket szabályozza, amelyek jelen lehetnek, de nem szükségesek a jelen lévő elemekhez value. Az alábbi táblázat azt mutatja be, hogy az egyes NumberStyles tagok hogyan befolyásolják a benne található valueelemeket.

NumberStyles érték A számjegyeken kívül az értékben engedélyezett elemek
None Csak a számjegyek elem.
AllowDecimalPoint A tizedesjel (.) és a törtjegyű elemek.
AllowExponent Az "e" vagy "E" karakter, amely exponenciális jelölést jelez. és exponential_digits.
AllowLeadingWhite A ws elem az elején value.
AllowTrailingWhite A ws elem a végén value.
AllowLeadingSign A jelelem a következő elején: .value
AllowTrailingSign A jelelem a végén value.
AllowParentheses A numerikus értéket tartalmazó zárójelek formájában megjelenő jelelem .
AllowThousands A csoportelválasztó (,) elem.
AllowCurrencySymbol A pénznem ($) elem.
Currency Minden elem. value Nem jelölhet azonban hexadecimális számot vagy exponenciális számokat.
Float A ws elem a kezdő vagy a végén value, a jel elején value, és a decimális pont (.) szimbólum. A value paraméter exponenciális jelölést is használhat.
Number A ws, signcsoportelválasztó (,) és decimális (.) elemek.
Any Minden elem. value A hexadecimális szám azonban nem jelölhető.

A többi NumberStyles értéktől eltérően, amelyek lehetővé teszik, de nem igénylik bizonyos stíluselemek valuejelenlétét, a NumberStyles.AllowHexSpecifier stílusérték azt jelenti, hogy az egyes numerikus karakterek value mindig hexadecimális karakterekként vannak értelmezve. Az érvényes hexadecimális karakterek: 0-9, A-F és a-f. A paraméterrel style kombinálható egyéb jelzők a következők NumberStyles.AllowLeadingWhite : és NumberStyles.AllowTrailingWhite. (Az NumberStyles enumerálás egy összetett számstílust tartalmaz, HexNumberamely a szóközjeleket is tartalmazza.)

A provider paraméter implementáció IFormatProvider . A GetFormat metódus egy NumberFormatInfo objektumot ad vissza, amely kultúraspecifikus információkat nyújt a formátumáról value. Általában provider az alábbiak bármelyike lehet:

  • Olyan CultureInfo objektum, amely a numerikus formázási információkat biztosító kultúrát jelöli. A GetFormat metódus a NumberFormatInfo numerikus formázási adatokat tartalmazó objektumot adja vissza.

  • Formázási NumberFormatInfo információkat tartalmazó objektum. (A implementációja GetFormat csak önmagát adja vissza.)

  • Egyéni objektum, amely a metódust implementálja IFormatProvider és használja a GetFormat formázási információkat biztosító objektum példányosítására és visszaadására NumberFormatInfo .

Ha provider igen null, akkor a rendszer az NumberFormatInfo aktuális kultúra objektumát használja.

Lásd még

A következőre érvényes:

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Forrás:
BigInteger.cs
public static System.Numerics.BigInteger Parse(ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As BigInteger

Paraméterek

utf8Text
ReadOnlySpan<Byte>
style
NumberStyles
provider
IFormatProvider

Válaszok

Megvalósítás

A következőre érvényes:

Parse(String, IFormatProvider)

Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs

Egy adott kultúraspecifikus formátumban lévő szám sztringképét annak megfelelőjeként BigInteger alakítja át.

public:
 static System::Numerics::BigInteger Parse(System::String ^ value, IFormatProvider ^ provider);
public:
 static System::Numerics::BigInteger Parse(System::String ^ value, IFormatProvider ^ provider) = IParsable<System::Numerics::BigInteger>::Parse;
public static System.Numerics.BigInteger Parse(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

Paraméterek

value
String

Egy átalakítandó számot tartalmazó sztring.

provider
IFormatProvider

Egy objektum, amely kultúraspecifikus formázási információkat tartalmaz a fájlról value.

Válaszok

A paraméterben value megadott számmal egyenértékű érték.

Megvalósítás

Kivételek

value az null.

value formátuma nem megfelelő.

Példák

Az alábbi példák két módszert mutatnak a tilde (~) negatív formázási jelként való definiálására BigInteger . Vegye figyelembe, hogy ha az BigInteger értékeket az eredeti sztringekkel megegyező formátumban szeretné megjeleníteni, a kódnak meg kell hívnia a BigInteger.ToString(IFormatProvider) metódust, és át kell adnia a NumberFormatInfo formázási információkat biztosító objektumot.

Az első példa egy olyan osztályt határoz meg, amely implementálja IFormatProvider és használja a GetFormat metódust a NumberFormatInfo formázási információkat biztosító objektum visszaadásához.

public class BigIntegerFormatProvider : IFormatProvider
{
   public object GetFormat(Type formatType)
   {
      if (formatType == typeof(NumberFormatInfo))
      {
         NumberFormatInfo numberFormat = new NumberFormatInfo();
         numberFormat.NegativeSign = "~";
         return numberFormat;
      }
      else
      {
         return null;
      }
   }
}
type BigIntegerFormatProvider() =
    interface IFormatProvider with

        member _.GetFormat(formatType: Type) =
            if formatType = typeof<NumberFormatInfo> then
                let numberFormat = NumberFormatInfo()
                numberFormat.NegativeSign <- "~"
                numberFormat
            else
                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

Az BigInteger objektumok ezután a következő kóddal hozhatók létre:

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);
let number = BigInteger.Parse("~6354129876", BigIntegerFormatProvider())
printfn $"{number.ToString(BigIntegerFormatProvider())}"
printfn $"{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)

A második példa egyszerűbb. Átadja a NumberFormatInfo formázási információkat tartalmazó objektumot a provider paraméternek.

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);
let fmt = NumberFormatInfo()
fmt.NegativeSign <- "~"

let number = BigInteger.Parse("~6354129876", fmt)
printfn $"{number.ToString fmt}"
printfn $"{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)

Megjegyzések

A value paraméternek egy szám sztring-ábrázolásának kell lennie az alábbi formában:

[ws][jel]számjegyek[ws]

A szögletes zárójelek ([ és ]) elemei nem kötelezőek. Az alábbi táblázat az egyes elemeket ismerteti.

Elem Leírás
Ws Nem kötelező üres terület.
jel Nem kötelező jel. Az érvényes jelkarakterek az objektum metódusa NumberFormatInfo.NegativeSign által visszaadott objektum tulajdonságai és NumberFormatInfo.PositiveSign tulajdonságai alapján NumberFormatInfo vannak meghatározvaprovider.GetFormat
Számjegy Számjegyek sorozata 0 és 9 között. A rendszer figyelmen kívül hagyja a kezdő nullákat.

Note

A paraméter által megadott sztringet a value rendszer a stílus használatával értelmezi NumberStyles.Integer . Nem tartalmazhat csoportelválasztókat vagy decimális elválasztójeleket, és nem rendelkezhet tizedes törtrészrel.

Important

Ha a Parse metódussal egy olyan érték sztringképének BigInteger kerekítésére használja, amelyet a ToString metódus adott ki, a metódust az "R" formátumjelölővel kell használnia BigInteger.ToString(String) az BigInteger érték sztring-ábrázolásának létrehozásához. Ellenkező esetben a BigInteger sztringábrázolás csak az eredeti érték 50 legjelentősebb számjegyét őrzi meg, és az adatok elveszhetnek, amikor a metódust Parse használja az BigInteger érték visszaállítására.

A provider paraméter egy IFormatProvider implementáció, amelynek GetFormat metódusa egy NumberFormatInfo olyan objektumot ad vissza, amely kultúraspecifikus formázási információkat biztosít. Parse(String, IFormatProvider) A metódus meghívásakor meghívja a provider paraméter metódusátGetFormat, és átad neki egyType, a típust NumberFormatInfo képviselő objektumot. A GetFormat metódus ezután visszaadja azt az NumberFormatInfo objektumot, amely információt nyújt a value paraméter formátumáról. A paraméter háromféleképpen provider biztosít egyéni formázási információkat az elemzési művelethez:

  • Átadhat egy CultureInfo objektumot, amely a formázási információkat tartalmazó kultúrát jelöli. A GetFormat metódus visszaadja azt az NumberFormatInfo objektumot, amely numerikus formázási információkat biztosít az adott kultúrához.

  • Átadhatja a tényleges NumberFormatInfo objektumot, amely numerikus formázási információkat biztosít. (A implementációja GetFormat csak önmagát adja vissza.)

  • Átadhat egy egyéni objektumot, amely implementálja a elemet IFormatProvider. A GetFormat metódus példányosítja és visszaadja a NumberFormatInfo formázási információkat biztosító objektumot.

Ha provider igennull, akkor a rendszer a jelenlegi kultúra objektuma alapján értelmezi a value formázástNumberFormatInfo.

Lásd még

A következőre érvényes:

Parse(ReadOnlySpan<Char>, IFormatProvider)

Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs

Több karakterből álló elemet elemez egy értékben.

public:
 static System::Numerics::BigInteger Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<System::Numerics::BigInteger>::Parse;
public static System.Numerics.BigInteger Parse(ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As BigInteger

Paraméterek

s
ReadOnlySpan<Char>

Az elemezni kívánt karakterek száma.

provider
IFormatProvider

Egy objektum, amely kultúraspecifikus formázási információkat tartalmaz a fájlról s.

Válaszok

Az elemzés seredménye.

Megvalósítás

A következőre érvényes:

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Forrás:
BigInteger.cs
public:
 static System::Numerics::BigInteger Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<System::Numerics::BigInteger>::Parse;
public static System.Numerics.BigInteger Parse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> System.Numerics.BigInteger
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As BigInteger

Paraméterek

utf8Text
ReadOnlySpan<Byte>
provider
IFormatProvider

Válaszok

Megvalósítás

A következőre érvényes:

Parse(String)

Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs

Egy szám sztringképét az azzal egyenértékűvé BigInteger alakítja.

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

Paraméterek

value
String

Az átalakítandó számot tartalmazó sztring.

Válaszok

A paraméterben value megadott számmal egyenértékű érték.

Kivételek

value az null.

value formátuma nem megfelelő.

Példák

Az alábbi példa két Parse(String) objektum példányosítására használja a BigInteger metódust. Megszorozza az egyes objektumokat egy másik számmal, majd meghívja a Compare metódust a két érték közötti kapcsolat meghatározásához.

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.
    let mutable stringToParse = ""

    try
        // Parse two strings.
        let string1 = "12347534159895123"
        let string2 = "987654321357159852"
        stringToParse <- string1
        let number1 = BigInteger.Parse stringToParse
        printfn $"Converted '{stringToParse}' to {number1:N0}."
        stringToParse <- string2
        let number2 = BigInteger.Parse stringToParse
        printfn $"Converted '{stringToParse}' to {number2:N0}."
        // Perform arithmetic operations on the two numbers.
        let number1 = number1 * bigint 3
        let number2 = number2 * bigint 2
        // Compare the numbers.
        let result = BigInteger.Compare(number1, number2)

        match result with
        | -1 -> printfn $"{number2:N0} is greater than {number1:N0}."
        | 0 -> printfn $"{number1:N0} is equal to {number2:N0}."
        | 1
        | _ -> printfn $"{number1:N0} is greater than {number2:N0}."
    with :? FormatException ->
        printfn $"Unable to parse {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.

Megjegyzések

A value paraméternek egy szám sztring-ábrázolásának kell lennie az alábbi formában.

[ws][jel]számjegyek[ws]

A szögletes zárójelek ([ és ]) elemei nem kötelezőek. Az alábbi táblázat az egyes elemeket ismerteti.

Elem Leírás
Ws Nem kötelező üres terület.
jel Nem kötelező jel. Az érvényes jelkarakterek az NumberFormatInfo.NegativeSign aktuális kultúra és NumberFormatInfo.PositiveSign tulajdonságok alapján vannak meghatározva.
Számjegy Számjegyek sorozata 0 és 9 között. A rendszer figyelmen kívül hagyja a kezdő nullákat.

Note

A paraméter által megadott sztringet a value rendszer a stílus használatával értelmezi NumberStyles.Integer . Nem tartalmazhat csoportelválasztókat vagy decimális elválasztójeleket, és nem rendelkezhet tizedes törtrészrel.

A value paraméter elemzése az aktuális rendszerkultúrához inicializált objektum formázási információinak System.Globalization.NumberFormatInfo használatával történik. További információért lásd NumberFormatInfo.CurrentInfo. Ha egy sztringet egy adott kultúra formázási információinak használatával szeretne elemezni, használja a metódust Parse(String, IFormatProvider) .

Important

Ha a Parse metódussal egy olyan érték sztringképének BigInteger kerekítésére használja, amelyet a ToString metódus adott ki, a metódust az "R" formátumjelölővel kell használnia BigInteger.ToString(String) az BigInteger érték sztring-ábrázolásának létrehozásához. Ellenkező esetben a BigInteger sztringábrázolás csak az eredeti érték 50 legjelentősebb számjegyét őrzi meg, és az adatok elveszhetnek, amikor a metódust Parse használja az BigInteger érték visszaállítására.

Lásd még

A következőre érvényes:

Parse(String, NumberStyles)

Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs
Forrás:
BigInteger.cs

Egy adott stílusban lévő szám sztringképét a megfelelőre BigInteger alakítja át.

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

Paraméterek

value
String

Egy átalakítandó számot tartalmazó sztring.

style
NumberStyles

A számbavételi értékek bitenkénti kombinációja, amely megadja a megengedett formátumot value.

Válaszok

A paraméterben value megadott számmal egyenértékű érték.

Kivételek

style nem érték NumberStyles .

-vagy-

styleA AllowHexSpecifier egy másik értékkel együtt tartalmazza a HexNumber jelölőt.

value az null.

value nem felel meg a megadott bemeneti mintának NumberStyles.

Példák

Az alábbi példa a Parse(String, NumberStyles) metódushoz intézett hívásokat mutatja be a paraméter több lehetséges értékével style . Bemutatja, hogyan értelmezhet egy sztringet hexadecimális értékként, és hogyan tilthatja le a szóközöket és a jelszimbólumokat.

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.
    let number = BigInteger.Parse("   -68054   ", NumberStyles.Integer)
    printfn $"{number}"
    let number = BigInteger.Parse("68054", NumberStyles.AllowHexSpecifier)
    printfn $"{number}"

    try
        let number =
            BigInteger.Parse("   -68054  ", NumberStyles.AllowLeadingWhite ||| NumberStyles.AllowTrailingWhite)

        printfn $"{number}"
    with :? FormatException as e ->
        printfn $"{e.Message}"

    try
        let number = BigInteger.Parse("   68054  ", NumberStyles.AllowLeadingSign)
        printfn $"{number}"
    with :? FormatException as e ->
        printfn $"{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.

Megjegyzések

A style paraméter meghatározza azokat a stíluselemeket (például a szóközt, a pozitív vagy negatív jelszimbólumot, a csoportelválasztó szimbólumot vagy a tizedesjelet), amelyek a paraméterben value engedélyezve vannak az elemzési művelet sikeres végrehajtásához. styles az enumerálás bitjelölőinek kombinációjának NumberStyles kell lennie. A style paraméter hasznossá teszi ezt a metódust, ha value egy hexadecimális érték sztring-ábrázolását tartalmazza, ha az általuk value képviselt számrendszer (decimális vagy hexadecimális) csak futásidőben ismert, vagy ha ki szeretné tiltani a szóközt vagy a jel szimbólumát.value

Az értéktől stylefüggően a paraméter a value következő elemeket tartalmazhatja:

[ws][$][jel][számjegyek;]számjegyek[.fractional_digits][E[jel]exponential_digits][ws]

Ha style tartalmazza NumberStyles.AllowHexSpecifier, a paraméter a value következő elemeket tartalmazhatja:

[ws]hexdigits[ws]

A szögletes zárójelek ([ és ]) elemei nem kötelezőek. Az alábbi táblázat az egyes elemeket ismerteti.

Elem Leírás
Ws Nem kötelező üres terület. Ha a jelölőt is magában foglaljavalue, az elején styleNumberStyles.AllowLeadingWhite fehér terület jelenhet meg, és a jelölőt is tartalmazó value terület végén styleNumberStyles.AllowTrailingWhite jelenhet meg.
$ Kultúraspecifikus pénznemszimbólum. A sztringben elfoglalt helyét az NumberFormatInfo.CurrencyNegativePattern aktuális kultúra és NumberFormatInfo.CurrencyPositivePattern tulajdonságai határozzák meg. Az aktuális kultúra pénznemszimbóluma akkor jelenhet meg, value ha style tartalmazza a jelölőt NumberStyles.AllowCurrencySymbol .
jel Nem kötelező jel. A jel akkor jelenhet meg, ha tartalmazza a jelölőt, és a végén, value ha style tartalmazza a jelölőtNumberStyles.AllowLeadingSign.valuestyleNumberStyles.AllowTrailingSign Zárójelekkel negatív értéket jelölhet value , ha style a NumberStyles.AllowParentheses jelölőt is tartalmazza.
Számjegy

fractional_digits

exponential_digits
Számjegyek sorozata 0 és 9 között. A fractional_digits esetében csak a 0 számjegy érvényes.
, Kultúraspecifikus csoportelválasztó szimbólum. A jelenlegi kultúra csoportelválasztója akkor jelenhet meg, value ha style tartalmazza a jelölőt NumberStyles.AllowThousands .
. Kultúraspecifikus tizedesjel. Az aktuális kultúra tizedesjele akkor jelenhet meg, value ha style tartalmazza a jelölőt NumberStyles.AllowDecimalPoint . A sikeres elemzési művelethez csak a 0 számjegy jelenhet meg tört számjegyként; ha fractional_digits bármilyen más számjegyet is tartalmaz, FormatException akkor a karaktert a függvény eldobja.
E Az "e" vagy "E" karakter, amely azt jelzi, hogy az érték exponenciális (tudományos) jelölésben jelenik meg. A value paraméter exponenciális jelöléssel jelölhet egy számot, ha style tartalmazza a jelölőt NumberStyles.AllowExponent .
hexdigits Hexadecimális számjegyek sorozata 0 és f között, vagy 0 és F között.

Note

A befejező NUL (U+0000) karaktereket s az elemzési művelet figyelmen kívül hagyja, függetlenül az style argumentum értékétől.

A csak számjegyekkel rendelkező sztringek (amelyek megfelelnek a NumberStyles.None stílusnak) mindig sikeresen elemezhetők. A fennmaradó NumberStyles tagok többsége a bemeneti sztringben esetleg jelen lévő, de nem kötelező elemeket szabályozza. Az alábbi táblázat azt mutatja be, hogy az egyes NumberStyles tagok hogyan befolyásolják a benne található valueelemeket.

NumberStyles Érték A számjegyeken kívül engedélyezett value elemek
None Csak a számjegyek elem.
AllowDecimalPoint A tizedesjel (.) és a törtjegyű elemek.
AllowExponent Az "e" vagy "E" karakter, amely exponenciális jelölést jelez, valamint exponential_digits.
AllowLeadingWhite A ws elem az elején value.
AllowTrailingWhite A ws elem a végén value.
AllowLeadingSign A jelelem a következő elején: .value
AllowTrailingSign A jelelem a végén value.
AllowParentheses A numerikus értéket tartalmazó zárójelek formájában megjelenő jelelem .
AllowThousands A csoportelválasztó (,) elem.
AllowCurrencySymbol A pénznem ($) elem.
Currency Minden elem. value Nem jelölhet azonban hexadecimális számot vagy exponenciális számokat.
Float A ws elem a kezdő vagy a végén value, a jel elején value, és a decimális pont (.) szimbólum. A value paraméter exponenciális jelölést is használhat.
Number A ws, signcsoportelválasztó (,) és decimális (.) elemek.
Any Minden elem. value A hexadecimális szám azonban nem jelölhető.

Important

Ha a Parse metódussal egy olyan érték sztringképének BigInteger kerekítésére használja, amelyet a ToString metódus adott ki, a metódust az "R" formátumjelölővel kell használnia BigInteger.ToString(String) az BigInteger érték sztring-ábrázolásának létrehozásához. Ellenkező esetben a BigInteger sztringábrázolás csak az eredeti érték 50 legjelentősebb számjegyét őrzi meg, és az adatok elveszhetnek, amikor a metódust Parse használja az BigInteger érték visszaállítására.

A többi NumberStyles értéktől eltérően, amelyek lehetővé teszik, de nem követelik meg bizonyos stíluselemek valuejelenlétét, a NumberStyles.AllowHexSpecifier stílusérték azt jelenti, hogy az egyes numerikus karakterek value mindig hexadecimális karakterekként vannak értelmezve. Az érvényes hexadecimális karakterek: 0-9, A-F és a-f. A paraméterrel style kombinálható egyéb jelzők a következők NumberStyles.AllowLeadingWhite : és NumberStyles.AllowTrailingWhite. (Az NumberStyles enumerálás egy összetett számstílust tartalmaz, HexNumberamely a szóközjeleket is tartalmazza.)

Note

Ha value egy hexadecimális szám sztringképe, akkor nem előzhető meg olyan díszítés (például 0x vagy &h), amely hexadecimális számként különbözteti meg. Ez a konvertálás sikertelenségéhez vezet.

Ha value hexadecimális sztring, akkor a Parse(String, NumberStyles) metódus negatív számként értelmezi value a két egymást kiegészítő ábrázolással tárolt számot, ha az első két hexadecimális számjegye nagyobb vagy egyenlő 0x80. Más szóval a metódus az első bájt value legmagasabb rendű bitét jelbitként értelmezi. Annak érdekében, hogy a hexadecimális sztring helyesen pozitív számként legyen értelmezve, az első számjegynek value nulla értékűnek kell lennie. A metódus például negatív értékként értelmezi 0x80 , de vagy pozitív értékként értelmezi 0x0800x0080 . Az alábbi példa a negatív és pozitív értékeket képviselő hexadecimális sztringek közötti különbséget mutatja be.

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.
open System.Globalization
open System.Numerics

let hexStrings =
    [| "80"
       "E293"
       "F9A2FF"
       "FFFFFFFF"
       "080"
       "0E293"
       "0F9A2FF"
       "0FFFFFFFF"
       "0080"
       "00E293"
       "00F9A2FF"
       "00FFFFFFFF" |]

for hexString in hexStrings do
    let number = BigInteger.Parse(hexString, NumberStyles.AllowHexSpecifier)
    printfn $"Converted 0x{hexString} to {number:N0}."
// 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.

A value paraméter elemzése az aktuális rendszerkultúrához inicializált objektum formázási információinak NumberFormatInfo használatával történik. Annak a kultúrának a megadásához, amelynek formázási adatait az elemzési művelethez használják, hívja meg a túlterhelést Parse(String, NumberStyles, IFormatProvider) .

Lásd még

A következőre érvényes: