Aracılığıyla paylaş


BigInteger.Parse Yöntem

Tanım

Bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür.

Aşırı Yüklemeler

Parse(String)

Bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Bir karakter aralığını bir değere ayrıştırıyor.

Parse(String, NumberStyles)

Belirtilen stildeki bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür.

Parse(String, IFormatProvider)

Belirtilen kültüre özgü biçimdeki bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Belirtilen karakter salt okunur aralığında bulunan bir sayının gösterimini, belirtilen stilde eşdeğerine BigInteger dönüştürür.

Parse(String, NumberStyles, IFormatProvider)

Belirtilen stilde ve kültüre özgü biçimdeki bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür.

Parse(String)

Kaynak:
BigInteger.cs
Kaynak:
BigInteger.cs
Kaynak:
BigInteger.cs

Bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür.

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

Parametreler

value
String

Dönüştürülecek sayıyı içeren bir dize.

Döndürülenler

parametresinde value belirtilen sayıya eşdeğer bir değer.

Özel durumlar

value, null değeridir.

value doğru biçimde değil.

Örnekler

Aşağıdaki örnek, iki BigInteger nesnenin Parse(String) örneğini oluştururken yöntemini kullanır. Her nesneyi başka bir sayı ile çarpar ve ardından iki değer arasındaki ilişkiyi belirlemek için yöntemini çağırır Compare .

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.

Açıklamalar

parametresi, value aşağıdaki biçimdeki bir sayının dize gösterimi olmalıdır.

[ws] [sign] rakamlar[ws]

Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.

Öğe Açıklama
Ws İsteğe bağlı beyaz boşluk.
sign İsteğe bağlı bir işaret. Geçerli işaret karakterleri geçerli kültürün NumberFormatInfo.NegativeSign ve NumberFormatInfo.PositiveSign özellikleri tarafından belirlenir.
Basamak 0 İle 9 arasında değişen bir basamak dizisi. Baştaki sıfırlar dikkate alınmaz.

Not

parametresi tarafından value belirtilen dize, stil kullanılarak NumberStyles.Integer yorumlanır. Herhangi bir grup ayırıcısı veya ondalık ayırıcı içeremez ve ondalık bölümü olamaz.

value parametresi, geçerli sistem kültürü için başlatılan bir System.Globalization.NumberFormatInfo nesnedeki biçimlendirme bilgileri kullanılarak ayrıştırılır. Daha fazla bilgi için bkz. NumberFormatInfo.CurrentInfo. Belirli bir kültürün biçimlendirme bilgilerini kullanarak bir dizeyi Parse(String, IFormatProvider) ayrıştırmak için yöntemini kullanın.

Önemli

yöntemi tarafından ToString çıktısı alınan bir BigInteger değerin dize gösterimini gidiş dönüş yapmak için yöntemini kullanırsanızParse, değerin BigInteger.ToString(String) dize gösterimini BigInteger oluşturmak için "R" biçim tanımlayıcısı ile yöntemini kullanmanız gerekir. Aksi takdirde, dize gösterimi özgün değerin BigInteger yalnızca en önemli 50 basamağını korur ve değeri geri yüklemek BigInteger için yöntemini kullandığınızda Parse veriler kaybolabilir.

Ayrıca bkz.

Şunlara uygulanır

Parse(ReadOnlySpan<Char>, IFormatProvider)

Kaynak:
BigInteger.cs
Kaynak:
BigInteger.cs
Kaynak:
BigInteger.cs

Bir karakter aralığını bir değere ayrıştırıyor.

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

Parametreler

s
ReadOnlySpan<Char>

Ayrıştırılacak karakterlerin yayılması.

provider
IFormatProvider

hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

Döndürülenler

ayrıştırma sişleminin sonucu.

Uygulamalar

Şunlara uygulanır

Parse(String, NumberStyles)

Kaynak:
BigInteger.cs
Kaynak:
BigInteger.cs
Kaynak:
BigInteger.cs

Belirtilen stildeki bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür.

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

Parametreler

value
String

Dönüştürülecek sayı içeren bir dize.

style
NumberStyles

İzin verilen biçimini belirten numaralandırma değerlerinin bit düzeyinde birleşimi value.

Döndürülenler

parametresinde value belirtilen sayıya eşdeğer bir değer.

Özel durumlar

style bir NumberStyles değer değildir.

-veya-

style veya bayrağını AllowHexSpecifierHexNumber başka bir değerle birlikte içerir.

value, null değeridir.

value tarafından NumberStylesbelirtilen giriş deseniyle uyumlu değildir.

Örnekler

Aşağıdaki örnekte, parametresi için Parse(String, NumberStyles) çeşitli olası değerlerle yöntemine yapılan style çağrılar gösterilmektedir. Bir dizeyi onaltılık değer olarak yorumlamayı ve boşluklara ve işaret simgelerine izin vermemeye yönelik yöntemleri gösterir.

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.

Açıklamalar

style parametresi, ayrıştırma işleminin başarılı olması için parametrede value izin verilen stil öğelerini (boşluk, pozitif veya negatif işaret simgesi, grup ayırıcı simgesi veya ondalık nokta simgesi gibi) tanımlar. styles sabit listesindeki bit bayraklarının NumberStyles birleşimi olmalıdır. style parametresi, tarafından temsil value edilen sayı sistemi (ondalık veya onaltılık) yalnızca çalışma zamanında bilindiğinde veya içinde boşluk veya işaret simgesine izin vermek istemediğinizde, onaltılık değerin dize gösterimini içerdiğinde valuebu yöntemin aşırı yüklemesini kullanışlı value hale getirir.

değerine stylevalue bağlı olarak parametresi aşağıdaki öğeleri içerebilir:

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

içeriyorsa styleNumberStyles.AllowHexSpecifiervalue, parametresi aşağıdaki öğeleri içerebilir:

[ws] hexdigits[ws]

Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.

Öğe Açıklama
Ws İsteğe bağlı beyaz boşluk. Bayrağı içeriyorsa başında boşluk ve valuestyle bayrağı içeriyorsa NumberStyles.AllowLeadingWhite sonunda valuestyleNumberStyles.AllowTrailingWhite görüntülenebilir.
$ Kültüre özgü para birimi simgesi. Dizedeki konumu, geçerli kültürün NumberFormatInfo.CurrencyNegativePattern ve NumberFormatInfo.CurrencyPositivePattern özellikleri tarafından tanımlanır. Bayrağı içeriyorsa geçerli kültürün NumberStyles.AllowCurrencySymbol para birimi simgesi içinde valuestyle görünebilir.
sign İsteğe bağlı bir işaret. İşaret, bayrağı içeriyorsa başında value ve bayrağı içeriyorsa sonunda NumberStyles.AllowTrailingSignvaluestyle görüntülenebilir.styleNumberStyles.AllowLeadingSign Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirvalue.
Basamak

fractional_digits

exponential_digits
0 İle 9 arasında bir basamak dizisi. fractional_digits için yalnızca 0 rakamı geçerlidir.
, Kültüre özgü bir grup ayırıcı simge. Bayrağı içeriyorsa geçerli kültürün grup ayırıcısı NumberStyles.AllowThousands içinde valuestyle görünebilir.
. Bir kültüre özgü ondalık nokta sembolü. Bayrağı içeriyorsa geçerli kültürün NumberStyles.AllowDecimalPoint ondalık noktası simgesi içinde valuestyle görünebilir. Ayrıştırma işleminin başarılı olması için kesirli basamak olarak yalnızca 0 rakamı görüntülenebilir; fractional_digits başka bir rakam içeriyorsa, bir FormatException oluşturulur.
E Değerin üslü (bilimsel) gösterimle temsil edildiğini gösteren "e" veya "E" karakteri. parametresi, value bayrağını içeriyorsa bir sayıyı üstel gösteriminde styleNumberStyles.AllowExponent gösterebilir.
hexdigits 0 İle f veya 0 ile f arasında onaltılık basamak dizisi.

Not

içindeki s sonlandırıcı NUL (U+0000) karakterleri, bağımsız değişkenin değerinden style bağımsız olarak ayrıştırma işlemi tarafından yoksayılır.

Yalnızca basamakları olan bir dize (stile NumberStyles.None karşılık gelir) her zaman başarıyla ayrıştırılıyor. Kalan NumberStyles üyelerin çoğu, giriş dizesinde mevcut olabilecek ancak mevcut olması gerekmeyen öğeleri denetler. Aşağıdaki tabloda, tek tek NumberStyles üyelerin içinde valuebulunabilecek öğeleri nasıl etkilediği gösterilir.

NumberStyles Değer Basamaklara ek olarak izin verilen value öğeler
None Yalnızca rakamlar öğesi.
AllowDecimalPoint Ondalık ayırıcı (.) ve kesirli basamaklar öğeleri.
AllowExponent Exponential_digits ile birlikte üstel gösterimi gösteren "e" veya "E" karakteri.
AllowLeadingWhite başındaki valuews öğesi.
AllowTrailingWhite sonundaki valuews öğesi.
AllowLeadingSign başındaki valuesign öğesi.
AllowTrailingSign sonundaki valuesign öğesi.
AllowParentheses Sayısal değeri kapsayan parantez biçimindeki işaret öğesi.
AllowThousands Grup ayırıcı (,) öğesi.
AllowCurrencySymbol Para birimi ($) öğesi.
Currency Tüm öğeler. Ancak, value onaltılık bir sayıyı veya üstel gösterimindeki bir sayıyı temsil edemez.
Float öğesinin başında veya sonundaki valuews öğesi, başlangıcını valueve ondalık ayırıcı (.) simgesini imzalar. parametresi üstel value gösterimi de kullanabilir.
Number , , grup ayırıcısı (,) ve ondalık ayırıcı (.) öğeleri. signws
Any Tüm öğeler. Ancak, value onaltılık bir sayıyı temsil edemez.

Önemli

yöntemi tarafından ToString çıktısı Parse alınan bir BigInteger değerin dize gösterimine gidiş dönüş yapmak için yöntemini kullanırsanız, değerin dize gösterimini BigInteger oluşturmak için "R" biçim tanımlayıcısı ile yöntemini kullanmanız BigInteger.ToString(String) gerekir. Aksi takdirde, dize gösterimi özgün değerin BigInteger yalnızca en önemli 50 basamağını korur ve değeri geri yüklemek BigInteger için yöntemini kullandığınızda Parse veriler kaybolabilir.

içinde belirli stil öğelerinin NumberStyles.AllowHexSpecifiervaluebulunmasına izin veren ancak gerektirmeyen diğer NumberStyles değerlerden farklı olarak, stil değeri içindeki tek tek sayısal karakterlerin value her zaman onaltılık karakterler olarak yorumlandığı anlamına gelir. Geçerli onaltılı karakter 0-9, A-F ve a-f karakterleridir. parametresiyle style birleştirilebilen diğer bayraklar yalnızca ve NumberStyles.AllowTrailingWhite'tirNumberStyles.AllowLeadingWhite. (Numaralandırma, NumberStyles her iki boşluk bayrağını da içeren bileşik bir sayı stili HexNumberiçerir.)

Not

Onaltılık bir sayının dize gösterimi isevalue, bunun önünde onaltılık sayı olarak ayırt eden herhangi bir dekorasyon (veya &hgibi0x) olamaz. Bu dönüştürmenin başarısız olmasına neden olur.

Onaltılık bir dizeysevalue, yöntemi ilk Parse(String, NumberStyles) iki onaltılık basamak değerinden büyük veya eşitse0x80, ikinin tamamlayıcı gösterimini kullanarak depolanan negatif bir sayı olarak yorumlarvalue. Başka bir deyişle, yöntemi içindeki ilk bayt'ın value en yüksek sıralı bitini işaret biti olarak yorumlar. Onaltılık dizenin doğru bir pozitif sayı olarak yorumlandığından emin olmak için içindeki ilk rakamın value değeri sıfır olmalıdır. Örneğin, yöntemi negatif bir değer olarak yorumlar 0x80 , ancak ya da 0x0800x0080 pozitif bir değer olarak yorumlar. Aşağıdaki örnek, negatif ve pozitif değerleri temsil eden onaltılık dizeler arasındaki farkı gösterir.

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.

value parametresi, geçerli sistem kültürü için başlatılan bir NumberFormatInfo nesnedeki biçimlendirme bilgileri kullanılarak ayrıştırılır. Biçimlendirme bilgileri ayrıştırma işlemi için kullanılan kültürü belirtmek için aşırı yüklemeyi çağırın Parse(String, NumberStyles, IFormatProvider) .

Ayrıca bkz.

Şunlara uygulanır

Parse(String, IFormatProvider)

Kaynak:
BigInteger.cs
Kaynak:
BigInteger.cs
Kaynak:
BigInteger.cs

Belirtilen kültüre özgü biçimdeki bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür.

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

Parametreler

value
String

Dönüştürülecek sayı içeren bir dize.

provider
IFormatProvider

hakkında valuekültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

Döndürülenler

parametresinde value belirtilen sayıya eşdeğer bir değer.

Uygulamalar

Özel durumlar

value, null değeridir.

value doğru biçimde değil.

Örnekler

Aşağıdaki örneklerde, tilde değerini (~) biçimlendirme BigInteger değerleri için negatif bir işaret olarak tanımlamanın iki yolu gösterilir. Değerleri özgün dizelerle aynı biçimde görüntülemek BigInteger için kodunuzun yöntemini çağırması BigInteger.ToString(IFormatProvider) ve biçimlendirme bilgileri sağlayan nesneyi geçirmesi NumberFormatInfo gerektiğini unutmayın.

İlk örnek, biçimlendirme bilgileri sağlayan nesnesini döndürmek NumberFormatInfo için yöntemini uygulayan IFormatProvider ve kullanan GetFormat bir sınıfı tanımlar.

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

BigInteger Daha sonra bir nesnenin örneği aşağıdaki kodla oluşturulabilir:

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)

İkinci örnek daha basittir. Biçimlendirme bilgilerini sağlayan nesneyi parametresine provider geçirirNumberFormatInfo.

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)

Açıklamalar

parametresi, value aşağıdaki biçimdeki bir sayının dize gösterimi olmalıdır:

[ws] [sign] rakamlar[ws]

Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.

Öğe Açıklama
Ws İsteğe bağlı beyaz boşluk.
sign İsteğe bağlı bir işaret. Geçerli işaret karakterleri, nesnenin NumberFormatInfo.NegativeSign yöntemi tarafından döndürülen nesnenin NumberFormatInfoproviderGetFormat ve NumberFormatInfo.PositiveSign özellikleri tarafından belirlenir.
Basamak 0 İle 9 arasında değişen bir basamak dizisi. Baştaki sıfırlar dikkate alınmaz.

Not

parametresi tarafından value belirtilen dize, stil kullanılarak NumberStyles.Integer yorumlanır. Herhangi bir grup ayırıcısı veya ondalık ayırıcı içeremez ve ondalık bölümü olamaz.

Önemli

yöntemi tarafından ToString çıktısı Parse alınan bir BigInteger değerin dize gösterimine gidiş dönüş yapmak için yöntemini kullanırsanız, değerin dize gösterimini BigInteger oluşturmak için "R" biçim tanımlayıcısı ile yöntemini kullanmanız BigInteger.ToString(String) gerekir. Aksi takdirde, dize gösterimi özgün değerin BigInteger yalnızca en önemli 50 basamağını korur ve değeri geri yüklemek BigInteger için yöntemini kullandığınızda Parse veriler kaybolabilir.

provider parametresi, yöntemi kültüre özgü biçimlendirme bilgileri sağlayan bir nesne döndüren bir IFormatProviderNumberFormatInfo uygulamadırGetFormat. Parse(String, IFormatProvider) yöntemi çağrıldığında parametresinin providerGetFormat yöntemini çağırır ve türü temsil NumberFormatInfo eden bir Type nesne iletir. Yöntemi GetFormat daha sonra parametresinin NumberFormatInfo biçimi value hakkında bilgi sağlayan nesnesini döndürür. Ayrıştırma işlemine provider özel biçimlendirme bilgileri sağlamak için parametresini kullanmanın üç yolu vardır:

  • Biçimlendirme bilgileri sağlayan kültürü temsil eden bir CultureInfo nesne geçirebilirsiniz. yöntemi GetFormat , bu kültür için sayısal biçimlendirme bilgileri sağlayan nesneyi döndürür NumberFormatInfo .

  • Sayısal biçimlendirme bilgileri sağlayan gerçek NumberFormatInfo nesneyi geçirebilirsiniz. (Uygulaması GetFormat yalnızca kendini döndürür.)

  • uygulayan IFormatProviderözel bir nesne geçirebilirsiniz. Yöntemi GetFormat , biçimlendirme bilgileri sağlayan nesnesinin örneğini NumberFormatInfo oluşturur ve döndürür.

ise providernull, biçimlendirmesi value geçerli kültürün NumberFormatInfo nesnesine göre yorumlanır.

Ayrıca bkz.

Şunlara uygulanır

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Kaynak:
BigInteger.cs
Kaynak:
BigInteger.cs
Kaynak:
BigInteger.cs

Belirtilen karakter salt okunur aralığında bulunan bir sayının gösterimini, belirtilen stilde eşdeğerine BigInteger dönüştürür.

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

Parametreler

value
ReadOnlySpan<Char>

Dönüştürülecek sayıyı içeren karakterlerin salt okunur yayılması.

style
NumberStyles

İzin verilen biçimini belirten numaralandırma değerlerinin bit düzeyinde birleşimi value.

provider
IFormatProvider

hakkında valuekültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

Döndürülenler

parametresinde value belirtilen sayıya eşdeğer bir değer.

Uygulamalar

Özel durumlar

style bir NumberStyles değer değildir.

-veya-

style veya bayrağını AllowHexSpecifierHexNumber başka bir değerle birlikte içerir.

value, null değeridir.

value tarafından stylebelirtilen giriş deseniyle uyumlu değildir.

Açıklamalar

style parametresi, ayrıştırma işleminin başarılı olması için parametrede value izin verilen stil öğelerini (boşluk, pozitif veya negatif işaret simgesi, grup ayırıcı simgesi veya ondalık ayırıcı simgesi gibi) tanımlar. styles sabit listesindeki bit bayraklarının NumberStyles bir bileşimi olmalıdır. parametresi, tarafından temsil value edilen style sayı sistemi (ondalık veya onaltılık) yalnızca çalışma zamanında bilindiğinde veya içinde boşluk veya işaret simgesine izin vermek istemediğinizde, onaltılık değerin gösterimini içerdiğinde valuebu yöntem aşırı yüklemesini kullanışlı value hale getirir.

değerine stylevalue bağlı olarak parametresi aşağıdaki öğeleri içerebilir:

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

içeriyorsa styleNumberStyles.AllowHexSpecifiervalue, parametresi aşağıdaki öğeleri içerebilir:

[ws] hexdigits[ws]

Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.

Öğe Açıklama
Ws İsteğe bağlı beyaz boşluk. Bayrağı içeriyorsa başında boşluk ve valuestyle bayrağı içeriyorsa NumberStyles.AllowLeadingWhite sonunda valuestyleNumberStyles.AllowTrailingWhite görüntülenebilir.
$ Kültüre özgü para birimi simgesi. içindeki value konumu, parametresi tarafından NumberFormatInfo.CurrencyNegativePattern belirtilen kültürün ve NumberFormatInfo.CurrencyPositivePattern özellikleriyle provider tanımlanır. Bayrağı içeriyorsa geçerli kültürün NumberStyles.AllowCurrencySymbol para birimi simgesi içinde valuestyle görünebilir.
sign İsteğe bağlı bir işaret. İşaret, bayrağı içeriyorsa başında value ve bayrağı içeriyorsa sonunda NumberStyles.AllowTrailingSignvaluestyle görüntülenebilir.styleNumberStyles.AllowLeadingSign Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirvalue.
Basamak

fractional_digits

exponential_digits
0 İle 9 arasında bir basamak dizisi. fractional_digits için yalnızca 0 rakamı geçerlidir.
, Kültüre özgü bir grup ayırıcı simge. bayrağını içeriyorsaNumberStyles.AllowThousands, tarafından provider belirtilen kültürün grup ayırıcı simgesi içinde valuestyle görünebilir.
. Bir kültüre özgü ondalık nokta sembolü. tarafından belirlenen provider kültürün ondalık nokta simgesi bayrağını style içeriyorsa NumberStyles.AllowDecimalPoint içinde value görünebilir. Ayrıştırma işleminin başarılı olması için kesirli basamak olarak yalnızca 0 rakamı görüntülenebilir; fractional_digits başka bir rakam içeriyorsa, bir FormatException oluşturulur.
E Değerin üslü (bilimsel) gösterimle temsil edildiğini gösteren "e" veya "E" karakteri. parametresi, value bayrağını içeriyorsa bir sayıyı üstel gösteriminde styleNumberStyles.AllowExponent gösterebilir.
hexdigits 0 İle f veya 0 ile f arasında onaltılık basamak dizisi.

Not

içindeki s sonlandırıcı NUL (U+0000) karakterleri, bağımsız değişkenin değerinden style bağımsız olarak ayrıştırma işlemi tarafından yoksayılır.

value Yalnızca basamakları olan (stile NumberStyles.None karşılık gelen) A her zaman başarıyla ayrıştırılıyor. Kalan NumberStyles üyelerin çoğu içinde mevcut olabilecek ancak mevcut valueolması gerekmeyen öğeleri denetler. Aşağıdaki tabloda, tek tek NumberStyles üyelerin içinde valuebulunabilecek öğeleri nasıl etkilediği gösterilir.

NumberStyles değeri Basamakların yanı sıra değerde izin verilen öğeler
None Yalnızca digits öğesi.
AllowDecimalPoint Ondalık ayırıcı (.) ve kesirli basamaklar öğeleri.
AllowExponent "e" veya "E" karakteri üstel gösterimi belirtir. exponential_digits ile birlikte.
AllowLeadingWhite başındaki valuews öğesi.
AllowTrailingWhite sonundaki valuews öğesi.
AllowLeadingSign başındaki valuesign öğesi.
AllowTrailingSign sonundaki valuesign öğesi.
AllowParentheses Sayısal değeri kapsayan parantez biçimindeki sign öğesi.
AllowThousands Grup ayırıcı (,) öğesi.
AllowCurrencySymbol Para birimi ($) öğesi.
Currency Tüm öğeler. Ancak, value onaltılık bir sayıyı veya üstel gösterimindeki bir sayıyı temsil edemez.
Float öğesinin başında veya sonundaki valuews öğesi, başında valueve ondalık ayırıcı (.) simgesiyle imzalar. parametresi üstel value gösterimi de kullanabilir.
Number ws, sign, grup ayırıcısı (,) ve ondalık ayırıcı (.) öğeleri.
Any Tüm öğeler. Ancak, value onaltılık bir sayıyı temsil edemez.

içinde belirli stil öğelerinin NumberStyles.AllowHexSpecifiervaluebulunmasına izin veren ancak gerektirmeyen diğer NumberStyles değerlerden farklı olarak, stil değeri içindeki value tek tek sayısal karakterlerin her zaman onaltılık karakterler olarak yorumlandığı anlamına gelir. Geçerli onaltılı karakter 0-9, A-F ve a-f karakterleridir. parametresiyle style birleştirilebilen diğer bayraklar yalnızca ve NumberStyles.AllowTrailingWhite'tirNumberStyles.AllowLeadingWhite. (Numaralandırma, NumberStylesHexNumberher iki boşluk bayrağını da içeren bileşik bir sayı stili içerir.)

provider parametresi bir IFormatProvider uygulamadır. GetFormat yöntemi, biçimi valuehakkında kültüre özgü bilgiler sağlayan bir NumberFormatInfo nesnesi döndürür. Genellikle aşağıdakilerden provider biri olabilir:

ise providernull, NumberFormatInfo geçerli kültürün nesnesi kullanılır.

Ayrıca bkz.

Şunlara uygulanır

Parse(String, NumberStyles, IFormatProvider)

Kaynak:
BigInteger.cs
Kaynak:
BigInteger.cs
Kaynak:
BigInteger.cs

Belirtilen stilde ve kültüre özgü biçimdeki bir sayının dize gösterimini eşdeğerine BigInteger dönüştürür.

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

Parametreler

value
String

Dönüştürülecek sayı içeren bir dize.

style
NumberStyles

İzin verilen biçimini belirten numaralandırma değerlerinin bit düzeyinde birleşimi value.

provider
IFormatProvider

hakkında valuekültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

Döndürülenler

parametresinde value belirtilen sayıya eşdeğer bir değer.

Uygulamalar

Özel durumlar

style bir NumberStyles değer değildir.

-veya-

style veya bayrağını AllowHexSpecifierHexNumber başka bir değerle birlikte içerir.

value, null değeridir.

value tarafından stylebelirtilen giriş deseniyle uyumlu değildir.

Örnekler

Aşağıdaki örnek, ve provider parametreleri için Parse(String, NumberStyles, IFormatProvider) çeşitli değer bileşimlerini kullanarak yöntemine style çeşitli çağrılar yapar.

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

Yöntemine Parse(String, NumberStyles, IFormatProvider) yapılan tek tek çağrıların bir sayısı, negatif işareti olarak bir tilde (~) tanımlayan aşağıdaki BigIntegerFormatProvider sınıfın bir örneğini geçirir.

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

Açıklamalar

style parametresi, ayrıştırma işleminin başarılı olması için parametrede value izin verilen stil öğelerini (boşluk, pozitif veya negatif işaret simgesi, grup ayırıcı simgesi veya ondalık nokta simgesi gibi) tanımlar. styles sabit listesindeki bit bayraklarının NumberStyles birleşimi olmalıdır. style parametresi, tarafından temsil value edilen sayı sistemi (ondalık veya onaltılık) yalnızca çalışma zamanında bilindiğinde veya içinde boşluk veya işaret simgesine izin vermek istemediğinizde, onaltılık değerin dize gösterimini içerdiğinde valuebu yöntemin aşırı yüklemesini kullanışlı value hale getirir.

değerine stylevalue bağlı olarak parametresi aşağıdaki öğeleri içerebilir:

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

içeriyorsa styleNumberStyles.AllowHexSpecifiervalue, parametresi aşağıdaki öğeleri içerebilir:

[ws] hexdigits[ws]

Köşeli ayraçlar ([ve]) içindeki öğeler isteğe bağlıdır. Aşağıdaki tablo her öğeyi açıklar.

Öğe Açıklama
Ws İsteğe bağlı beyaz boşluk. Bayrağı içeriyorsa başında boşluk ve valuestyle bayrağı içeriyorsa NumberStyles.AllowLeadingWhite sonunda valuestyleNumberStyles.AllowTrailingWhite görüntülenebilir.
$ Kültüre özgü para birimi simgesi. Dizedeki konumu, parametresi tarafından NumberFormatInfo.CurrencyNegativePattern belirtilen kültürün ve NumberFormatInfo.CurrencyPositivePattern özellikleriyle provider tanımlanır. Bayrağı içeriyorsa geçerli kültürün NumberStyles.AllowCurrencySymbol para birimi simgesi içinde valuestyle görünebilir.
sign İsteğe bağlı bir işaret. İşaret, bayrağı içeriyorsa başında value ve bayrağı içeriyorsa sonunda NumberStyles.AllowTrailingSignvaluestyle görüntülenebilir.styleNumberStyles.AllowLeadingSign Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirvalue.
Basamak

fractional_digits

exponential_digits
0 İle 9 arasında bir basamak dizisi. fractional_digits için yalnızca 0 rakamı geçerlidir.
, Kültüre özgü bir grup ayırıcı simge. bayrağını içeriyorsaNumberStyles.AllowThousands, tarafından provider belirtilen kültürün grup ayırıcı simgesi içinde valuestyle görünebilir.
. Bir kültüre özgü ondalık nokta sembolü. tarafından belirlenen provider kültürün ondalık nokta simgesi bayrağını style içeriyorsa NumberStyles.AllowDecimalPoint içinde value görünebilir. Ayrıştırma işleminin başarılı olması için kesirli basamak olarak yalnızca 0 rakamı görüntülenebilir; fractional_digits başka bir rakam içeriyorsa, bir FormatException oluşturulur.
E Değerin üslü (bilimsel) gösterimle temsil edildiğini gösteren "e" veya "E" karakteri. parametresi, value bayrağını içeriyorsa bir sayıyı üstel gösteriminde styleNumberStyles.AllowExponent gösterebilir.
hexdigits 0 İle f veya 0 ile f arasında onaltılık basamak dizisi.

Not

içindeki s sonlandırıcı NUL (U+0000) karakterleri, bağımsız değişkenin değerinden style bağımsız olarak ayrıştırma işlemi tarafından yoksayılır.

Yalnızca basamakları olan bir dize (stile NumberStyles.None karşılık gelir) her zaman başarıyla ayrıştırılıyor. Kalan NumberStyles üyelerin çoğu, giriş dizesinde mevcut olabilecek ancak mevcut olması gerekmeyen öğeleri denetler. Aşağıdaki tabloda, tek tek NumberStyles üyelerin içinde valuebulunabilecek öğeleri nasıl etkilediği gösterilir.

NumberStyles değeri Basamakların yanı sıra değerde izin verilen öğeler
None Yalnızca digits öğesi.
AllowDecimalPoint Ondalık ayırıcı (.) ve kesirli basamaklar öğeleri.
AllowExponent "e" veya "E" karakteri üstel gösterimi belirtir. exponential_digits ile birlikte.
AllowLeadingWhite başındaki valuews öğesi.
AllowTrailingWhite sonundaki valuews öğesi.
AllowLeadingSign başındaki valuesign öğesi.
AllowTrailingSign sonundaki valuesign öğesi.
AllowParentheses Sayısal değeri kapsayan parantez biçimindeki sign öğesi.
AllowThousands Grup ayırıcı (,) öğesi.
AllowCurrencySymbol Para birimi ($) öğesi.
Currency Tüm öğeler. Ancak, value onaltılık bir sayıyı veya üstel gösterimindeki bir sayıyı temsil edemez.
Float öğesinin başında veya sonundaki valuews öğesi, başında valueve ondalık ayırıcı (.) simgesiyle imzalar. parametresi üstel value gösterimi de kullanabilir.
Number ws, sign, grup ayırıcısı (,) ve ondalık ayırıcı (.) öğeleri.
Any Tüm öğeler. Ancak, value onaltılık bir sayıyı temsil edemez.

Önemli

yöntemi tarafından ToString çıktısı alınan bir BigInteger değerin dize gösterimini gidiş dönüş yapmak için yöntemini kullanırsanızParse, değerin BigInteger.ToString(String) dize gösterimini BigInteger oluşturmak için "R" biçim tanımlayıcısı ile yöntemini kullanmanız gerekir. Aksi takdirde, dize gösterimi özgün değerin BigInteger yalnızca en önemli 50 basamağını korur ve değeri geri yüklemek BigInteger için yöntemini kullandığınızda Parse veriler kaybolabilir.

içinde belirli stil öğelerinin NumberStyles.AllowHexSpecifiervaluebulunmasına izin veren ancak gerektirmeyen diğer NumberStyles değerlerden farklı olarak, stil değeri içindeki value tek tek sayısal karakterlerin her zaman onaltılık karakterler olarak yorumlandığı anlamına gelir. Geçerli onaltılı karakter 0-9, A-F ve a-f karakterleridir. parametresiyle style birleştirilebilen diğer bayraklar yalnızca ve NumberStyles.AllowTrailingWhite'tirNumberStyles.AllowLeadingWhite. (Numaralandırma, NumberStylesHexNumberher iki boşluk bayrağını da içeren bileşik bir sayı stili içerir.)

Not

Onaltılık bir sayının dize gösterimi isevalue, bundan önce onu onaltılık sayı olarak ayıran herhangi bir dekorasyon (veya &hgibi0x) olamaz. Bu dönüştürmenin başarısız olmasına neden olur.

Onaltılık bir dizeysevalue, yöntemi ilk Parse(String, NumberStyles) iki onaltılık basamak değerinden büyük veya değerine eşitse0x80, ikinin tamamlayıcı gösterimini kullanarak depolanmış negatif bir sayı olarak yorumlarvalue. Başka bir deyişle yöntemi, içindeki ilk baytın value en yüksek sıralı bitini işaret biti olarak yorumlar. Onaltılık dizenin pozitif sayı olarak doğru yorumlandığından emin olmak için içindeki ilk basamak value sıfır değerine sahip olmalıdır. Örneğin, yöntemi negatif bir değer olarak yorumlar 0x80 , ancak ya da 0x0800x0080 pozitif bir değer olarak yorumlar. Aşağıdaki örnekte, negatif ve pozitif değerleri temsil eden onaltılık dizeler arasındaki fark gösterilmektedir.

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.

provider parametresi bir IFormatProvider uygulamadır. GetFormat yöntemi, biçimi valuehakkında kültüre özgü bilgiler sağlayan bir NumberFormatInfo nesnesi döndürür. Genellikle aşağıdakilerden provider biri olabilir:

ise providernull, NumberFormatInfo geçerli kültürün nesnesi kullanılır.

Ayrıca bkz.

Şunlara uygulanır