Aracılığıyla paylaş


Int32.Parse Yöntem

Tanım

Bir sayının dize gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür.

Aşırı Yüklemeler

Name Description
Parse(String)

Bir sayının dize gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür.

Parse(ReadOnlySpan<Byte>, IFormatProvider)

UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.

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 32 bit imzalı tamsayı eşdeğerine dönüştürür.

Parse(String, IFormatProvider)

Belirli bir kültüre özgü biçimdeki bir sayının dize gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür.

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Belirtilen stilde ve kültüre özgü biçimdeki bir sayının span gösterimini 32 bit imzalı tamsayı eşdeğerine 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 32 bit imzalı tamsayı eşdeğerine dönüştürür.

Parse(String)

Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs

Bir sayının dize gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür.

public:
 static int Parse(System::String ^ s);
public static int Parse(string s);
static member Parse : string -> int
Public Shared Function Parse (s As String) As Integer

Parametreler

s
String

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

Döndürülenler

içinde bulunan sayıya eşdeğer 32 bit imzalı stamsayı.

Özel durumlar

s, null'e eşittir.

s doğru biçimde değil.

s Int32.MinValue değerinden küçük veya Int32.MaxValue değerinden büyük bir sayıyı temsil eder.

Örnekler

Aşağıdaki örnekte, yöntemini kullanarak bir dize değerinin 32 bit imzalı tamsayı değerine nasıl dönüştürüldüğü gösterilmektedir Int32.Parse(String) . Sonuçta elde edilen tamsayı değeri konsolda görüntülenir.

using System;

public class Example
{
   public static void Main()
   {
      string[] values = { "+13230", "-0", "1,390,146", "$190,235,421,127",
                          "0xFA1B", "163042", "-10", "007", "2147483647",
                          "2147483648", "16e07", "134985.0", "-12034",
                          "-2147483648", "-2147483649" };
      foreach (string value in values)
      {
         try {
            int number = Int32.Parse(value);
            Console.WriteLine("{0} --> {1}", value, number);
         }
         catch (FormatException) {
            Console.WriteLine("{0}: Bad Format", value);
         }
         catch (OverflowException) {
            Console.WriteLine("{0}: Overflow", value);
         }
      }
   }
}
// The example displays the following output:
//       +13230 --> 13230
//       -0 --> 0
//       1,390,146: Bad Format
//       $190,235,421,127: Bad Format
//       0xFA1B: Bad Format
//       163042 --> 163042
//       -10 --> -10
//       007 --> 7
//       2147483647 --> 2147483647
//       2147483648: Overflow
//       16e07: Bad Format
//       134985.0: Bad Format
//       -12034 --> -12034
//       -2147483648 --> -2147483648
//       -2147483649: Overflow
open System

let values =
    [ "+13230"; "-0"; "1,390,146"; "$190,235,421,127"
      "0xFA1B"; "163042"; "-10"; "007"; "2147483647"
      "2147483648"; "16e07"; "134985.0"; "-12034"
      "-2147483648"; "-2147483649" ]

for value in values do
    try
        let number = Int32.Parse value
        printfn $"{value} --> {number}"
    with 
    | :? FormatException ->
        printfn $"{value}: Bad Format"
    | :? OverflowException ->
        printfn $"{value}: Overflow"
    

// The example displays the following output:
//       +13230 --> 13230
//       -0 --> 0
//       1,390,146: Bad Format
//       $190,235,421,127: Bad Format
//       0xFA1B: Bad Format
//       163042 --> 163042
//       -10 --> -10
//       007 --> 7
//       2147483647 --> 2147483647
//       2147483648: Overflow
//       16e07: Bad Format
//       134985.0: Bad Format
//       -12034 --> -12034
//       -2147483648 --> -2147483648
//       -2147483649: Overflow
Module Example
   Public Sub Main()
      Dim values() As String = { "+13230", "-0", "1,390,146", "$190,235,421,127",
                                 "0xFA1B", "163042", "-10", "007", "2147483647", 
                                 "2147483648", "16e07", "134985.0", "-12034",
                                 "-2147483648", "-2147483649"  }
      For Each value As String In values
         Try
            Dim number As Integer = Int32.Parse(value) 
            Console.WriteLine("{0} --> {1}", value, number)
         Catch e As FormatException
            Console.WriteLine("{0}: Bad Format", value)
         Catch e As OverflowException
            Console.WriteLine("{0}: Overflow", value)   
         End Try  
      Next
   End Sub
End Module
' The example displays the following output:
'       +13230 --> 13230
'       -0 --> 0
'       1,390,146: Bad Format
'       $190,235,421,127: Bad Format
'       0xFA1B: Bad Format
'       163042 --> 163042
'       -10 --> -10
'       007 --> 7
'       2147483647 --> 2147483647
'       2147483648: Overflow
'       16e07: Bad Format
'       134985.0: Bad Format
'       -12034 --> -12034
'       -2147483648 --> -2147483648
'       -2147483649: Overflow

Açıklamalar

s parametresi formun bir sayısını içerir:

[ws] [sign]digits[ws]

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

Öğe Açıklama
Ws İsteğe bağlı boşluk.
işaret İsteğe bağlı bir işaret.
Basamak 0 ile 9 arasında bir basamak dizisi.

s parametresi stil kullanılarak NumberStyles.Integer yorumlanır. Ondalık basamaklara ek olarak, yalnızca baştaki ve sondaki boşlukların başındaki işaretle birlikte kullanılmasına izin verilir. içinde sbulunabilecek stil öğelerini açıkça tanımlamak için veya Int32.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanınInt32.Parse(String, NumberStyles).

s 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. Daha fazla bilgi için bkz. CurrentInfo. Başka bir kültürün biçimlendirme bilgilerini kullanarak bir dizeyi Int32.Parse(String, NumberStyles, IFormatProvider) ayrıştırmak için yöntemini kullanın.

Ayrıca bkz.

Şunlara uygulanır

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs

UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.

public:
 static int Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<int>::Parse;
public static int Parse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> int
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As Integer

Parametreler

utf8Text
ReadOnlySpan<Byte>

Ayrıştırılacak UTF-8 karakter aralığı.

provider
IFormatProvider

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

Döndürülenler

ayrıştırma utf8Textişleminin sonucu.

Uygulamalar

Şunlara uygulanır

Parse(ReadOnlySpan<Char>, IFormatProvider)

Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs

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

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

Parametreler

s
ReadOnlySpan<Char>

Ayrıştırılacak karakterlerin yayılma alanı.

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:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs

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

public:
 static int Parse(System::String ^ s, System::Globalization::NumberStyles style);
public static int Parse(string s, System.Globalization.NumberStyles style);
static member Parse : string * System.Globalization.NumberStyles -> int
Public Shared Function Parse (s As String, style As NumberStyles) As Integer

Parametreler

s
String

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

style
NumberStyles

içinde bulunabilecek sstil öğelerini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değerdir Integer.

Döndürülenler

içinde sbelirtilen sayıya eşdeğer 32 bit imzalı tamsayı.

Özel durumlar

s, null'e eşittir.

style bir NumberStyles değer değildir.

-veya-

styleve HexNumber değerlerinin AllowHexSpecifier birleşimi değildir.

s ile styleuyumlu bir biçimde değil.

s Int32.MinValue değerinden küçük veya Int32.MaxValue değerinden büyük bir sayıyı temsil eder.

-veya-

s sıfır olmayan kesirli basamaklar içerir.

Örnekler

Aşağıdaki örnek, çeşitli Int32 değerlerin Int32.Parse(String, NumberStyles) dize gösterimlerini ayrıştırmak için yöntemini kullanır. Örneğin geçerli kültürü en-US.

using System;
using System.Globalization;

public class ParseInt32
{
   public static void Main()
   {
      Convert("104.0", NumberStyles.AllowDecimalPoint);
      Convert("104.9", NumberStyles.AllowDecimalPoint);
      Convert(" $17,198,064.42", NumberStyles.AllowCurrencySymbol |
                                 NumberStyles.Number);
      Convert("103E06", NumberStyles.AllowExponent);
      Convert("-1,345,791", NumberStyles.AllowThousands);
      Convert("(1,345,791)", NumberStyles.AllowThousands |
                             NumberStyles.AllowParentheses);
   }

   private static void Convert(string value, NumberStyles style)
   {
      try
      {
         int number = Int32.Parse(value, style);
         Console.WriteLine("Converted '{0}' to {1}.", value, number);
      }
      catch (FormatException)
      {
         Console.WriteLine("Unable to convert '{0}'.", value);
      }
      catch (OverflowException)
      {
         Console.WriteLine("'{0}' is out of range of the Int32 type.", value);
      }
   }
}
// The example displays the following output to the console:
//       Converted '104.0' to 104.
//       '104.9' is out of range of the Int32 type.
//       ' $17,198,064.42' is out of range of the Int32 type.
//       Converted '103E06' to 103000000.
//       Unable to convert '-1,345,791'.
//       Converted '(1,345,791)' to -1345791.
open System
open System.Globalization

let convert value (style: NumberStyles) =
    try
        let number = Int32.Parse(value, style)
        printfn $"Converted '{value}' to {number}."
    with 
    | :? FormatException ->
        printfn $"Unable to convert '{value}'."
    | :? OverflowException ->
        printfn $"'{value}' is out of range of the Int32 type."

convert "104.0" NumberStyles.AllowDecimalPoint
convert "104.9" NumberStyles.AllowDecimalPoint
convert " $17,198,064.42" (NumberStyles.AllowCurrencySymbol ||| NumberStyles.Number)
convert "103E06" NumberStyles.AllowExponent
convert "-1,345,791" NumberStyles.AllowThousands
convert "(1,345,791)" (NumberStyles.AllowThousands ||| NumberStyles.AllowParentheses)


// The example displays the following output to the console:
//       Converted '104.0' to 104.
//       '104.9' is out of range of the Int32 type.
//       ' $17,198,064.42' is out of range of the Int32 type.
//       Converted '103E06' to 103000000.
//       Unable to convert '-1,345,791'.
//       Converted '(1,345,791)' to -1345791.
Imports System.Globalization

Module ParseInt32
   Public Sub Main()
      Convert("104.0", NumberStyles.AllowDecimalPoint)    
      Convert("104.9", NumberStyles.AllowDecimalPoint)
      Convert(" $17,198,064.42", NumberStyles.AllowCurrencySymbol Or _
                                 NumberStyles.Number)
      Convert("103E06", NumberStyles.AllowExponent)  
      Convert("-1,345,791", NumberStyles.AllowThousands)
      Convert("(1,345,791)", NumberStyles.AllowThousands Or _
                             NumberStyles.AllowParentheses)
   End Sub
   
   Private Sub Convert(value As String, style As NumberStyles)
      Try
         Dim number As Integer = Int32.Parse(value, style)
         Console.WriteLine("Converted '{0}' to {1}.", value, number)
      Catch e As FormatException
         Console.WriteLine("Unable to convert '{0}'.", value)
      Catch e As OverflowException
         Console.WriteLine("'{0}' is out of range of the Int32 type.", value)   
      End Try
   End Sub
End Module
' The example displays the following output to the console:
'       Converted '104.0' to 104.
'       '104.9' is out of range of the Int32 type.
'       ' $17,198,064.42' is out of range of the Int32 type.
'       Converted '103E06' to 103000000.
'       Unable to convert '-1,345,791'.
'       Converted '(1,345,791)' to -1345791.

Açıklamalar

style parametresi, ayrıştırma işleminin başarılı olması için parametresinde s izin verilen stil öğelerini (boşluk, pozitif veya negatif işaret simgesi veya binlik ayırıcı simgesi gibi) tanımlar. Numaralandırmadaki NumberStyles bit bayraklarının bir bileşimi olmalıdır. değerine styles bağlı olarak parametresi aşağıdaki öğeleri içerebilir:

[ws] [$] [sign] [rakamlar,]digits[.fractional_digits][e[sign]exponential_digits][ws]

Veya şunu style içeriyorsa AllowHexSpecifier:

[ws]hexdigits[ws]

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

Öğe Açıklama
Ws İsteğe bağlı boşluk. Boşluk bayrağını içeriyorsa başında s ve bayrağı içeriyorsa sonunda NumberStyles.AllowTrailingWhitesstyle görüntülenebilir.styleNumberStyles.AllowLeadingWhite
$ 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 s para birimi simgesi içinde styleNumberStyles.AllowCurrencySymbol görüntülenebilir.
imza İsteğe bağlı bir işaret. İşaret, bayrağın eklenip eklenmediğinin başında ve bayrağın eklenip eklenmediğinin styleNumberStyles.AllowTrailingSigns sonunda görünebilir.sstyleNumberStyles.AllowLeadingSign Parantezler, bayrağı içeriyorsa s negatif bir değeri style belirtmek için içinde kullanılabilirNumberStyles.AllowParentheses.
Basamak

fractional_digits

exponential_digits
0 ile 9 arasında bir basamak dizisi. fractional_digits için yalnızca 0 rakamı geçerlidir.
, Kültüre özgü binlik ayırıcı simgesi. Bayrağı içeriyorsa geçerli kültürün binlik ayırıcısı NumberStyles.AllowThousands içinde sstyle görüntülenebilir.
. Kültüre özgü ondalık nokta simgesi. Bayrağı içeriyorsa geçerli kültürün s ondalık noktası simgesi içinde styleNumberStyles.AllowDecimalPoint görüntülenebilir. Ayrıştırma işleminin başarılı olması için yalnızca 0 rakamı kesirli basamak olarak görünebilir; fractional_digits başka bir basamak içeriyorsa, bir OverflowException oluşturulur.
e Değerin üstel gösterimde temsil olduğunu gösteren 'e' veya 'E' karakteri. parametresi, s bayrağını içeriyorsa üstel gösterimde style bir sayıyı NumberStyles.AllowExponent temsil edebilir.
hexdigits 0'dan f'ye veya 0'dan F'ye kadar 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 basamak içeren bir dize (stile NumberStyles.None karşılık gelir) türün aralığındaysa Int32 her zaman başarılı ayrıştırılır. Geri kalan NumberStyles üyelerin çoğu, giriş dizesinde bulunması gerekmeyen öğeleri denetler. Aşağıdaki tablo, tek tek NumberStyles üyelerin içinde sbulunabilecek öğeleri nasıl etkilediğini gösterir.

NumberStyles değeri Basamaklara ek olarak s içinde izin verilen öğeler
None Yalnızca rakamlar öğesi.
AllowDecimalPoint Ondalık nokta ( . ) ve kesirli basamak öğeleri.
AllowExponent parametresi üstel s gösterim de kullanabilir.
AllowLeadingWhite başındaki sws öğesi.
AllowTrailingWhite sonundaki s öğesi.
AllowLeadingSign başındaki ssign öğesi.
AllowTrailingSign sonundaki s öğesi.
AllowParentheses Sayısal değeri kapsayan parantez biçimindeki sign öğesi.
AllowThousands Binlik ayırıcısı ( , ) öğesi.
AllowCurrencySymbol $ öğesi.
Currency Tüm. s parametresi onaltılık bir sayıyı veya üstel gösterimdeki bir sayıyı temsil edemez.
Float başında veya sonundaki sws öğesi, öğesinin sbaşında ve ondalık noktası ( . ) simgesiyle işaret eder. parametresi üstel s gösterim de kullanabilir.
Number ws, , signbinler ayırıcısı ( , ), ve ondalık noktası ( . ) öğeleri.
Any dışındaki s tüm stiller onaltılık bir sayıyı temsil edemez.

NumberStyles.AllowHexSpecifier Bayrağı kullanılıyorsa, s ön ek olmadan onaltılık bir değer olmalıdır. Örneğin, "C9AF3" başarıyla ayrıştırıyor, ancak "0xC9AF3" ayrıştırmıyor. ve parametresiyle s birleştirilebilen diğer bayraklar.NumberStyles.AllowLeadingWhiteNumberStyles.AllowTrailingWhite (Numaralandırma, NumberStylesNumberStyles.HexNumberher iki boşluk bayrağını da içeren bileşik bir sayı stili içerir.)

s 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. Ayrıştırma işlemi için biçimlendirme bilgileri kullanılan kültürü belirtmek için aşırı yüklemeyi çağırın Int32.Parse(String, NumberStyles, IFormatProvider) .

Ayrıca bkz.

Şunlara uygulanır

Parse(String, IFormatProvider)

Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs

Belirli bir kültüre özgü biçimdeki bir sayının dize gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür.

public:
 static int Parse(System::String ^ s, IFormatProvider ^ provider);
public:
 static int Parse(System::String ^ s, IFormatProvider ^ provider) = IParsable<int>::Parse;
public static int Parse(string s, IFormatProvider provider);
public static int Parse(string s, IFormatProvider? provider);
static member Parse : string * IFormatProvider -> int
Public Shared Function Parse (s As String, provider As IFormatProvider) As Integer

Parametreler

s
String

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

provider
IFormatProvider

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

Döndürülenler

içinde sbelirtilen sayıya eşdeğer 32 bit imzalı tamsayı.

Uygulamalar

Özel durumlar

s, null'e eşittir.

s doğru biçimde değil.

s Int32.MinValue değerinden küçük veya Int32.MaxValue değerinden büyük bir sayıyı temsil eder.

Örnekler

Aşağıdaki örnek, web formunun düğme tıklama olay işleyicisidir. Kullanıcının yerel ayarını belirlemek için özelliği tarafından HttpRequest.UserLanguages döndürülen diziyi kullanır. Ardından bu yerel ayara karşılık gelen bir CultureInfo nesnenin örneğini oluşturur. Daha NumberFormatInfo sonra bu nesneye CultureInfo ait olan nesne, kullanıcının girişini bir Int32 değere dönüştürmek için yöntemine geçirilirParse(String, IFormatProvider).

protected void OkToInteger_Click(object sender, EventArgs e)
{
    string locale;
    int number;
    CultureInfo culture;

    // Return if string is empty
    if (String.IsNullOrEmpty(this.inputNumber.Text))
        return;

    // Get locale of web request to determine possible format of number
    if (Request.UserLanguages.Length == 0)
        return;
    locale = Request.UserLanguages[0];
    if (String.IsNullOrEmpty(locale))
        return;

    // Instantiate CultureInfo object for the user's locale
    culture = new CultureInfo(locale);

    // Convert user input from a string to a number
    try
    {
        number = Int32.Parse(this.inputNumber.Text, culture.NumberFormat);
    }
    catch (FormatException)
    {
        return;
    }
    catch (Exception)
    {
        return;
    }
    // Output number to label on web form
    this.outputNumber.Text = "Number is " + number.ToString();
}
Protected Sub OkToInteger_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OkToInteger.Click
    Dim locale As String
    Dim culture As CultureInfo
    Dim number As Integer

    ' Return if string is empty
    If String.IsNullOrEmpty(Me.inputNumber.Text) Then Exit Sub

    ' Get locale of web request to determine possible format of number
    If Request.UserLanguages.Length = 0 Then Exit Sub
    locale = Request.UserLanguages(0)
    If String.IsNullOrEmpty(locale) Then Exit Sub

    ' Instantiate CultureInfo object for the user's locale
    culture = New CultureInfo(locale)

    ' Convert user input from a string to a number
    Try
        number = Int32.Parse(Me.inputNumber.Text, culture.NumberFormat)
    Catch ex As FormatException
        Exit Sub
    Catch ex As Exception
        Exit Sub
    End Try

    ' Output number to label on web form
    Me.outputNumber.Text = "Number is " & number.ToString()
End Sub

Açıklamalar

Yöntemin Parse(String, IFormatProvider) bu aşırı yüklemesi genellikle çeşitli yollarla biçimlendirilebilen metni bir Int32 değere dönüştürmek için kullanılır. Örneğin, bir kullanıcı tarafından girilen metni HTML metin kutusuna sayısal bir değere dönüştürmek için kullanılabilir.

s parametresi formun bir sayısını içerir:

[ws] [sign]digits[ws]

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

Öğe Açıklama
Ws İsteğe bağlı boşluk.
imza İsteğe bağlı bir işaret.
Basamak 0 ile 9 arasında bir basamak dizisi.

s parametresi stil kullanılarak NumberStyles.Integer yorumlanır. Ondalık basamaklara ek olarak, yalnızca baştaki ve sondaki boşlukların başındaki işaretle birlikte kullanılmasına izin verilir. içinde sbulunabilecek stil öğelerini açıkça tanımlamak için yöntemini kullanın Int32.Parse(String, NumberStyles, IFormatProvider) .

provider parametresi, veya CultureInfo nesnesi gibi bir IFormatProviderNumberFormatInfo uygulamadır. parametresi, provider biçimi shakkında kültüre özgü bilgiler sağlar. ise providernull, NumberFormatInfo geçerli kültürün nesnesi kullanılır.

Ayrıca bkz.

Şunlara uygulanır

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs

UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.

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

Parametreler

utf8Text
ReadOnlySpan<Byte>

Ayrıştırılacak UTF-8 karakter aralığı.

style
NumberStyles

içinde utf8Textbulunabilecek sayı stillerinin bit düzeyinde birleşimi.

provider
IFormatProvider

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

Döndürülenler

ayrıştırma utf8Textişleminin sonucu.

Uygulamalar

Şunlara uygulanır

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs

Belirtilen stilde ve kültüre özgü biçimdeki bir sayının span gösterimini 32 bit imzalı tamsayı eşdeğerine dönüştürür.

public static int Parse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
public static int Parse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> int
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As Integer

Parametreler

s
ReadOnlySpan<Char>

Dönüştürülecek sayıyı temsil eden karakterleri içeren bir yayılma alanı.

style
NumberStyles

içinde sbulunabilecek stil öğelerini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değerdir Integer.

provider
IFormatProvider

biçimi shakkında kültüre özgü bilgiler sağlayan bir nesne.

Döndürülenler

içinde sbelirtilen sayıya eşdeğer 32 bit imzalı tamsayı.

Uygulamalar

Şunlara uygulanır

Parse(String, NumberStyles, IFormatProvider)

Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs
Kaynak:
Int32.cs

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

public:
 static int Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
 static int Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<int>::Parse;
public static int Parse(string s, System.Globalization.NumberStyles style, IFormatProvider provider);
public static int Parse(string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> int
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As Integer

Parametreler

s
String

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

style
NumberStyles

içinde sbulunabilecek stil öğelerini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değerdir Integer.

provider
IFormatProvider

biçimi shakkında kültüre özgü bilgiler sağlayan bir nesne.

Döndürülenler

içinde sbelirtilen sayıya eşdeğer 32 bit imzalı tamsayı.

Uygulamalar

Özel durumlar

s, null'e eşittir.

style bir NumberStyles değer değildir.

-veya-

styleve HexNumber değerlerinin AllowHexSpecifier birleşimi değildir.

s ile styleuyumlu bir biçimde değil.

s Int32.MinValue değerinden küçük veya Int32.MaxValue değerinden büyük bir sayıyı temsil eder.

-veya-

s sıfır olmayan kesirli basamaklar içerir.

Örnekler

Aşağıdaki örnek, değerlerin style dize gösterimlerini Int32 ayrıştırmak için çeşitli ve provider parametreleri kullanır. Ayrıca, biçimlendirme bilgileri ayrıştırma işlemi için kullanılan kültüre bağlı olarak aynı dizenin yorumlanabileceği farklı yollardan bazılarını da gösterir.

using System;
using System.Globalization;

public class ParseInt32
{
   public static void Main()
   {
      Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands,
              new CultureInfo("en-GB"));
      Convert("12,000", NumberStyles.Float | NumberStyles.AllowThousands,
              new CultureInfo("fr-FR"));
      Convert("12,000", NumberStyles.Float, new CultureInfo("en-US"));

      Convert("12 425,00", NumberStyles.Float | NumberStyles.AllowThousands,
              new CultureInfo("sv-SE"));
      Convert("12,425.00", NumberStyles.Float | NumberStyles.AllowThousands,
              NumberFormatInfo.InvariantInfo);
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint,
              new CultureInfo("fr-FR"));
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowDecimalPoint,
              new CultureInfo("en-US"));
      Convert("631,900", NumberStyles.Integer | NumberStyles.AllowThousands,
              new CultureInfo("en-US"));
   }

   private static void Convert(string value, NumberStyles style,
                               IFormatProvider provider)
   {
      try
      {
         int number = Int32.Parse(value, style, provider);
         Console.WriteLine("Converted '{0}' to {1}.", value, number);
      }
      catch (FormatException)
      {
         Console.WriteLine("Unable to convert '{0}'.", value);
      }
      catch (OverflowException)
      {
         Console.WriteLine("'{0}' is out of range of the Int32 type.", value);
      }
   }
}
// This example displays the following output to the console:
//       Converted '12,000' to 12000.
//       Converted '12,000' to 12.
//       Unable to convert '12,000'.
//       Converted '12 425,00' to 12425.
//       Converted '12,425.00' to 12425.
//       '631,900' is out of range of the Int32 type.
//       Unable to convert '631,900'.
//       Converted '631,900' to 631900.
open System
open System.Globalization

let convert (value: string) (style: NumberStyles) (provider: IFormatProvider) =
    try
        let number = Int32.Parse(value, style, provider)
        printfn $"Converted '{value}' to {number}."
    with 
    | :? FormatException ->
        printfn $"Unable to convert '{value}'."
    | :? OverflowException ->
        printfn $"'{value}' is out of range of the Int32 type."

convert "12,000" (NumberStyles.Float ||| NumberStyles.AllowThousands) (CultureInfo "en-GB")
convert "12,000" (NumberStyles.Float ||| NumberStyles.AllowThousands) (CultureInfo "fr-FR")
convert "12,000" NumberStyles.Float (CultureInfo "en-US")
convert "12 425,00" (NumberStyles.Float ||| NumberStyles.AllowThousands) (CultureInfo "sv-SE")
convert "12,425.00" (NumberStyles.Float ||| NumberStyles.AllowThousands) NumberFormatInfo.InvariantInfo
convert "631,900" (NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint) (CultureInfo "fr-FR")
convert "631,900" (NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint) (CultureInfo "en-US")
convert "631,900" (NumberStyles.Integer ||| NumberStyles.AllowThousands) (CultureInfo "en-US")

// This example displays the following output to the console:
//       Converted '12,000' to 12000.
//       Converted '12,000' to 12.
//       Unable to convert '12,000'.
//       Converted '12 425,00' to 12425.
//       Converted '12,425.00' to 12425.
//       '631,900' is out of range of the Int32 type.
//       Unable to convert '631,900'.
//       Converted '631,900' to 631900.
Imports System.Globalization

Module ParseInt32
   Public Sub Main()
      Convert("12,000", NumberStyles.Float Or NumberStyles.AllowThousands, _
              New CultureInfo("en-GB"))      
      Convert("12,000", NumberStyles.Float Or NumberStyles.AllowThousands, _
              New CultureInfo("fr-FR"))
      Convert("12,000", NumberStyles.Float, New CultureInfo("en-US"))
      
      Convert("12 425,00", NumberStyles.Float Or NumberStyles.AllowThousands, _
              New CultureInfo("sv-SE")) 
      Convert("12,425.00", NumberStyles.Float Or NumberStyles.AllowThousands, _
              NumberFormatInfo.InvariantInfo) 
      Convert("631,900", NumberStyles.Integer Or NumberStyles.AllowDecimalPoint, _ 
              New CultureInfo("fr-FR"))
      Convert("631,900", NumberStyles.Integer Or NumberStyles.AllowDecimalPoint, _
              New CultureInfo("en-US"))
      Convert("631,900", NumberStyles.Integer Or NumberStyles.AllowThousands, _
              New CultureInfo("en-US"))
   End Sub

   Private Sub Convert(value As String, style As NumberStyles, _
                       provider As IFormatProvider)
      Try
         Dim number As Integer = Int32.Parse(value, style, provider)
         Console.WriteLine("Converted '{0}' to {1}.", value, number)
      Catch e As FormatException
         Console.WriteLine("Unable to convert '{0}'.", value)
      Catch e As OverflowException
         Console.WriteLine("'{0}' is out of range of the Int32 type.", value)   
      End Try
   End Sub                       
End Module
' This example displays the following output to the console:
'       Converted '12,000' to 12000.
'       Converted '12,000' to 12.
'       Unable to convert '12,000'.
'       Converted '12 425,00' to 12425.
'       Converted '12,425.00' to 12425.
'       '631,900' is out of range of the Int32 type.
'       Unable to convert '631,900'.
'       Converted '631,900' to 631900.

Açıklamalar

parametresi, style ayrıştırma işleminin başarılı olması için parametresinde s izin verilen stil öğelerini (boşluk veya pozitif işaret gibi) tanımlar. Numaralandırmadaki NumberStyles bit bayraklarının bir bileşimi olmalıdır. değerine styles bağlı olarak parametresi aşağıdaki öğeleri içerebilir:

[ws] [$] [sign] [digits,]digits[.fractional_digist][e[sign]exponential_digits][ws]

Veya şunu style içeriyorsa AllowHexSpecifier:

[ws]hexdigits[ws]

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

Öğe Açıklama
Ws İsteğe bağlı boşluk. Boşluk bayrağını içeriyorsa başında s ve bayrağı içeriyorsa sonunda NumberStyles.AllowTrailingWhitesstyle görüntülenebilir.styleNumberStyles.AllowLeadingWhite
$ Kültüre özgü para birimi simgesi. Dizedeki konumu, parametresinin yöntemi NumberFormatInfo.CurrencyPositivePattern tarafından döndürülen nesnenin özelliğiyle NumberFormatInfoGetFormat tanımlanırprovider. Bayrağı içeriyorsa s para birimi simgesi içinde styleNumberStyles.AllowCurrencySymbol görüntülenebilir.
imza İsteğe bağlı bir işaret. İşaret, bayrağın eklenip eklenmediğinin başında veya bayrağın içinde olup olmadığının styleNumberStyles.AllowTrailingSigns sonunda görüntülenebilir.sstyleNumberStyles.AllowLeadingSign Parantezler, bayrağı içeriyorsa s negatif bir değeri style belirtmek için içinde kullanılabilirNumberStyles.AllowParentheses.
Basamak

fractional_digits

exponential_digits
0 ile 9 arasında bir basamak dizisi. fractional_digits için yalnızca 0 rakamı geçerlidir.
, Kültüre özgü binlik ayırıcı simgesi. bayrağını içeriyorsa, tarafından provider belirtilen kültürün binlik ayırıcısı NumberStyles.AllowThousands içinde sstyle görüntülenebilir.
. Kültüre özgü ondalık nokta simgesi. bayrağını içeriyorsaprovider, tarafından s belirtilen kültürün ondalık nokta simgesi içinde styleNumberStyles.AllowDecimalPoint görüntülenebilir.

Ayrıştırma işleminin başarılı olması için yalnızca 0 rakamı kesirli basamak olarak görünebilir; fractional_digits başka bir basamak içeriyorsa, bir OverflowException oluşturulur.
e Değerin üstel gösterimde temsil olduğunu gösteren 'e' veya 'E' karakteri. parametresi, s bayrağını içeriyorsa üstel gösterimde style bir sayıyı NumberStyles.AllowExponent temsil edebilir.
hexdigits 0'dan f'ye veya 0'dan F'ye kadar 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 ondalık basamağı olan bir dize (stile NumberStyles.None karşılık gelir) türün aralığındaysa Int32 her zaman başarıyla ayrıştırılır. Kalan NumberStyles üyelerin çoğu, bu giriş dizesinde mevcut olması gerekmeyen öğeleri denetler. Aşağıdaki tablo, tek tek NumberStyles üyelerin içinde sbulunabilecek öğeleri nasıl etkilediğini gösterir.

Bileşik olmayan NumberStyles değerleri Basamaklara ek olarak s içinde izin verilen öğeler
NumberStyles.None Yalnızca ondalık basamaklar.
NumberStyles.AllowDecimalPoint Ondalık nokta ( . ) ve kesirli basamak öğeleri. Ancak kesirli basamaklar yalnızca bir veya daha fazla 0 basamak içermelidir veya bir OverflowException oluşturulur.
NumberStyles.AllowExponent parametresi üstel s gösterim de kullanabilir. s Üstel gösterimdeki bir sayıyı temsil ederse, sıfır olmayan kesirli bileşen olmadan veri türü aralığındaki Int32 bir tamsayıyı temsil etmelidir.
NumberStyles.AllowLeadingWhite başındaki sws öğesi.
NumberStyles.AllowTrailingWhite sonundaki s öğesi.
NumberStyles.AllowLeadingSign Basamakların önüne pozitif bir işaret gelebilir.
NumberStyles.AllowTrailingSign Basamakların ardından pozitif bir işaret görünebilir.
NumberStyles.AllowParentheses Sayısal değeri kapsayan parantez biçimindeki sign öğesi.
NumberStyles.AllowThousands Binlik ayırıcısı ( , ) öğesi.
NumberStyles.AllowCurrencySymbol $ öğesi.

NumberStyles.AllowHexSpecifier Bayrağı kullanılıyorsa, s ön ek olmadan onaltılık bir değer olmalıdır. Örneğin, "C9AF3" başarıyla ayrıştırıyor, ancak "0xC9AF3" ayrıştırmıyor. içinde style bulunabilecek diğer bayraklar yalnızca ve NumberStyles.AllowLeadingWhite'tirNumberStyles.AllowTrailingWhite. (Numaralandırma, NumberStyles her iki boşluk bayrağını da içeren bileşik bir sayı stiline NumberStyles.HexNumbersahiptir.)

provider parametresi, veya CultureInfo nesnesi gibi bir IFormatProviderNumberFormatInfo uygulamadır. parametresi, provider ayrıştırmada kullanılan kültüre özgü bilgiler sağlar. ise providernull, NumberFormatInfo geçerli kültürün nesnesi kullanılır.

Ayrıca bkz.

Şunlara uygulanır