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

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

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

siçinde yer alan sayıya eşdeğer 32 bit imzalı tamsayı.

Özel durumlar

s doğru biçimde değil.

s Int32.MinValue veya Int32.MaxValue'den büyük bir sayıyı temsil eder.

Örnekler

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

using namespace System;

void main()
{
   array<String^>^ values = { "+13230", "-0", "1,390,146", "$190,235,421,127",
                              "0xFA1B", "163042", "-10", "007", "2147483647", 
                              "2147483648", "16e07", "134985.0", "-12034",
                              "-2147483648", "-2147483649" };
   for each (String^ value in values)
   {
      try {
         Int32 number = Int32::Parse(value); 
         Console::WriteLine("{0} --> {1}", value, number);
      }
      catch (FormatException^ e) {
         Console::WriteLine("{0}: Bad Format", value);
      }   
      catch (OverflowException^ e) {
         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
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 NumberStyles.Integer stili kullanılarak 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. siçinde bulunabilecek stil öğelerini açıkça tanımlamak için Int32.Parse(String, NumberStyles) veya Int32.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanın.

s parametresi, geçerli sistem kültürü için başlatılan bir NumberFormatInfo nesnesindeki 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 ayrıştırmak için Int32.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanın.

Ayrıca bkz.

  • ToString()
  • .NET'da Sayısal Dizeleri Ayrıştırma

Şunlara uygulanır

Parse(ReadOnlySpan<Byte>, IFormatProvider)

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

utf8Texthakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne.

Döndürülenler

utf8Textayrıştırma sonucu.

Uygulamalar

Şunlara uygulanır

Parse(ReadOnlySpan<Char>, IFormatProvider)

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

shakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne.

Döndürülenler

sayrıştırma sonucu.

Uygulamalar

Şunlara uygulanır

Parse(String, NumberStyles)

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

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

Döndürülenler

siçinde belirtilen sayıya eşdeğer 32 bit imzalı tamsayı.

Özel durumlar

style NumberStyles bir değer değildir.

-veya-

style, AllowHexSpecifier ve HexNumber değerlerinin birleşimi değildir.

s, styleile uyumlu bir biçimde değil.

s Int32.MinValue veya Int32.MaxValue'den 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 dize gösterimlerini ayrıştırmak için Int32.Parse(String, NumberStyles) yöntemini kullanır. Örneğin geçerli kültürü en-US.

using namespace System;
using namespace System::Globalization;

public ref 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);
      }
   }
};

int main()
{
    ParseInt32::Main();
}
// 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.
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 s parametresinde izin verilen stil öğelerini (boşluk, pozitif veya negatif işaret simgesi veya binlik ayırıcı simgesi gibi) tanımlar. NumberStyles numaralandırmasından bit bayraklarının birleşimi olmalıdır. styledeğerine bağlı olarak, s parametresi aşağıdaki öğeleri içerebilir:

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

veya styleAllowHexSpecifieriçeriyorsa:

[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. style NumberStyles.AllowLeadingWhite bayrağı içeriyorsa boşluk s başında ve styleNumberStyles.AllowTrailingWhite bayrağı içeriyorsa s sonunda 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. style NumberStyles.AllowCurrencySymbol bayrağı içeriyorsa geçerli kültürün para birimi simgesi s görünebilir.
imzalama İsteğe bağlı bir işaret. İşaret, styleNumberStyles.AllowLeadingSign bayrağı içeriyorsa s başında ve styleNumberStyles.AllowTrailingSign bayrağı içeriyorsa s sonunda görüntülenebilir. style NumberStyles.AllowParentheses bayrağı içeriyorsa, negatif bir değeri belirtmek için s'de parantezler kullanılabilir.
basamak

fractional_digits

exponential_digits
0 ile 9 arasında bir basamak dizisi. fractional_digitsiçin yalnızca 0 rakamı geçerlidir.
, Kültüre özgü binlik ayırıcı simgesi. geçerli kültürün binlik ayırıcısı, styleNumberStyles.AllowThousands bayrağı içeriyorsa s görünebilir.
. Kültüre özgü ondalık nokta simgesi. style NumberStyles.AllowDecimalPoint bayrağı içeriyorsa geçerli kültürün ondalık noktası simgesi s görünebilir. 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. s parametresi, styleNumberStyles.AllowExponent bayrağı içeriyorsa, bir sayıyı üstel gösterimde temsil edebilir.
hexdigits 0'dan f'ye veya 0'dan F'ye kadar onaltılık basamak dizisi.

Not

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

Yalnızca basamak içeren bir dize (NumberStyles.None stiline karşılık gelir), Int32 türü aralığındaysa her zaman başarılı ayrıştırılır. Geri kalan NumberStyles üyelerinin çoğu giriş dizesinde bulunması gerekmeyen öğeleri denetler. Aşağıdaki tablo, tek tek NumberStyles üyelerinin s'de mevcut olabilecek öğeleri nasıl etkilediğini gösterir.

NumberStyles değeri Basamaklara ek olarak s içinde izin verilen öğeler
None basamakları yalnızca öğe.
AllowDecimalPoint Ondalık nokta ( . ) ve kesirli basamaklar öğeleri .
AllowExponent s parametresi üstel gösterimi de kullanabilir.
AllowLeadingWhite sbaşındaki ws öğesi.
AllowTrailingWhite ssonundaki ws öğesi.
AllowLeadingSign sbaşındaki sign öğesi.
AllowTrailingSign ssonundaki sign öğesi.
AllowParentheses işareti, sayısal değeri kapsayan parantez biçiminde öğesidir.
AllowThousands Binlik ayırıcı ( , ) öğ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 sonunda ws öğesi , başındaki ve ondalık ayırıcı ( . ) simgesi . s parametresi üstel gösterimi de kullanabilir.
Number ws, sign, binler ayırıcısı ( , ) ve ondalık ayırıcı ( . ) öğeleri.
Any s dışındaki tüm stiller onaltılık bir sayıyı temsil edemez.

NumberStyles.AllowHexSpecifier bayrağı kullanılırsa, 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. s parametresiyle birleştirilebilen diğer bayraklar yalnızca NumberStyles.AllowLeadingWhite ve NumberStyles.AllowTrailingWhite. (NumberStyles numaralandırması, her iki boşluk bayrağını da içeren NumberStyles.HexNumberbileşik bir sayı stili içerir.)

s parametresi, geçerli sistem kültürü için başlatılan bir NumberFormatInfo nesnesindeki 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 Int32.Parse(String, NumberStyles, IFormatProvider) aşırı yüklemesini çağırın.

Ayrıca bkz.

Şunlara uygulanır

Parse(String, IFormatProvider)

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

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

Döndürülenler

siçinde belirtilen sayıya eşdeğer 32 bit imzalı tamsayı.

Uygulamalar

Özel durumlar

s doğru biçimde değil.

s Int32.MinValue veya Int32.MaxValue'den 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 HttpRequest.UserLanguages özelliği tarafından döndürülen diziyi kullanır. Ardından bu yerel ayara karşılık gelen bir CultureInfo nesnesi örneği oluşturur. Bu CultureInfo nesnesine ait NumberFormatInfo nesnesi, kullanıcının girişini Int32 bir değere dönüştürmek için Parse(String, IFormatProvider) yöntemine geçirilir.

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

Parse(String, IFormatProvider) yönteminin bu aşırı yüklemesi genellikle çeşitli yollarla biçimlendirilebilen metni Int32 bir 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.
imzalama İsteğe bağlı bir işaret.
basamak 0 ile 9 arasında bir basamak dizisi.

s parametresi NumberStyles.Integer stili kullanılarak 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. siçinde bulunabilecek stil öğelerini açıkça tanımlamak için Int32.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanın.

provider parametresi, NumberFormatInfo veya CultureInfo nesnesi gibi IFormatProvider bir uygulamadır. provider parametresi, sbiçimi hakkında kültüre özgü bilgiler sağlar. provider nullise, geçerli kültür için NumberFormatInfo nesnesi kullanılır.

Ayrıca bkz.

Şunlara uygulanır

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

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

utf8Textiçinde bulunabilecek sayı stillerinin bit düzeyinde birleşimi.

provider
IFormatProvider

utf8Texthakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne.

Döndürülenler

utf8Textayrıştırma sonucu.

Uygulamalar

Şunlara uygulanır

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

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

s'de bulunabilecek stil öğelerini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değer Integer.

provider
IFormatProvider

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

Döndürülenler

siçinde belirtilen 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

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

s'de bulunabilecek stil öğelerini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değer Integer.

provider
IFormatProvider

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

Döndürülenler

siçinde belirtilen sayıya eşdeğer 32 bit imzalı tamsayı.

Uygulamalar

Özel durumlar

style NumberStyles bir değer değildir.

-veya-

style, AllowHexSpecifier ve HexNumber değerlerinin birleşimi değildir.

s, styleile uyumlu bir biçimde değil.

s Int32.MinValue veya Int32.MaxValue'den büyük bir sayıyı temsil eder.

-veya-

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

Örnekler

Aşağıdaki örnek, Int32 değerlerin dize gösterimlerini ayrıştırmak için çeşitli style 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 namespace System;
using namespace System::Globalization;

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

      Convert("12 425,00", NumberStyles::Float | NumberStyles::AllowThousands,
              gcnew CultureInfo("sv-SE"));
      Convert("12,425.00", NumberStyles::Float | NumberStyles::AllowThousands,
              NumberFormatInfo::InvariantInfo);
      Convert("631,900", NumberStyles::Integer | NumberStyles::AllowDecimalPoint, 
              gcnew CultureInfo("fr-FR"));
      Convert("631,900", NumberStyles::Integer | NumberStyles::AllowDecimalPoint,
              gcnew CultureInfo("en-US"));
      Convert("631,900", NumberStyles::Integer | NumberStyles::AllowThousands,
              gcnew 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);   
      }
   }                               
};

int main()
{
    ParseInt32::Main();
}
// 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.
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

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

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

veya styleAllowHexSpecifieriçeriyorsa:

[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. style NumberStyles.AllowLeadingWhite bayrağı içeriyorsa boşluk s başında ve styleNumberStyles.AllowTrailingWhite bayrağı içeriyorsa s sonunda görüntülenebilir.
$ Kültüre özgü para birimi simgesi. Dizedeki konumu, provider parametresinin GetFormat yöntemi tarafından döndürülen NumberFormatInfo nesnesinin NumberFormatInfo.CurrencyPositivePattern özelliği tarafından tanımlanır. para birimi simgesi, styleNumberStyles.AllowCurrencySymbol bayrağı içeriyorsa s görünebilir.
imzalama İsteğe bağlı bir işaret. İşaret, styleNumberStyles.AllowLeadingSign bayrağı içeriyorsa s başında veya styleNumberStyles.AllowTrailingSign bayrağı içeriyorsa s sonunda görünebilir. style NumberStyles.AllowParentheses bayrağı içeriyorsa, negatif bir değeri belirtmek için s'de parantezler kullanılabilir.
basamak

fractional_digits

exponential_digits
0 ile 9 arasında bir basamak dizisi. fractional_digitsiçin yalnızca 0 rakamı geçerlidir.
, Kültüre özgü binlik ayırıcı simgesi. provider tarafından belirtilen kültürün binlik ayırıcısı, styleNumberStyles.AllowThousands bayrağı içeriyorsa s görünebilir.
. Kültüre özgü ondalık nokta simgesi. style NumberStyles.AllowDecimalPoint bayrağı içeriyorsa, provider tarafından belirtilen kültürün ondalık noktası simgesi s'de 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. s parametresi, styleNumberStyles.AllowExponent bayrağı içeriyorsa, bir sayıyı üstel gösterimde temsil edebilir.
hexdigits 0'dan f'ye veya 0'dan F'ye kadar onaltılık basamak dizisi.

Not

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

Yalnızca ondalık basamağı olan bir dize (NumberStyles.None stiline karşılık gelir) Int32 türü aralığındaysa her zaman başarıyla ayrıştırılır. Kalan NumberStyles üyelerinin çoğu, bu giriş dizesinde bulunması gerekmeyen öğeleri denetler. Aşağıdaki tablo, tek tek NumberStyles üyelerinin s'de mevcut olabilecek öğ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 basamaklar öğeleri . Ancak, kesirli basamak yalnızca bir veya daha fazla 0 basamak içermelidir veya bir OverflowException oluşturulur.
NumberStyles.AllowExponent s parametresi üstel gösterimi de kullanabilir. s üstel gösterimdeki bir sayıyı temsil ederse, sıfır olmayan kesirli bileşen olmadan Int32 veri türü aralığındaki bir tamsayıyı temsil etmelidir.
NumberStyles.AllowLeadingWhite sbaşındaki ws öğesi.
NumberStyles.AllowTrailingWhite ssonundaki ws öğesi.
NumberStyles.AllowLeadingSign basamakönce pozitif bir işaret görünebilir.
NumberStyles.AllowTrailingSign basamaksonra pozitif bir işaret görünebilir.
NumberStyles.AllowParentheses işareti, sayısal değeri kapsayan parantez biçiminde öğesidir.
NumberStyles.AllowThousands Binlik ayırıcı ( , ) öğesi.
NumberStyles.AllowCurrencySymbol $ öğesi.

NumberStyles.AllowHexSpecifier bayrağı kullanılırsa, 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. style'de bulunabilecek diğer bayraklar NumberStyles.AllowLeadingWhite ve NumberStyles.AllowTrailingWhite. (NumberStyles numaralandırması, her iki boşluk bayrağını da içeren NumberStyles.HexNumberbileşik bir sayı stiline sahiptir.)

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

Ayrıca bkz.

  • ToString()
  • .NET'da Sayısal Dizeleri Ayrıştırma

Şunlara uygulanır