Int64.Parse Yöntem

Tanım

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

Aşırı Yüklemeler

Parse(String, NumberStyles, IFormatProvider)

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

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Bir sayının belirtilen stil ve kültüre özgü biçimdeki span gösterimini 64 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(String, IFormatProvider)

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

Parse(String)

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

Parse(ReadOnlySpan<Char>, IFormatProvider)

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

Parse(ReadOnlySpan<Byte>, IFormatProvider)

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

Parse(String, NumberStyles)

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

Parse(String, NumberStyles, IFormatProvider)

Kaynak:
Int64.cs
Kaynak:
Int64.cs
Kaynak:
Int64.cs

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

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

Parametreler

s
String

Dönüştürülecek sayıyı içeren bir 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.

provider
IFormatProvider

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

Döndürülenler

içinde belirtilen ssayıya eşdeğer 64 bit imzalı tamsayı.

Uygulamalar

Özel durumlar

s, null değeridir.

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.

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

-veya-

style kesirli basamakları destekler, ancak s sıfır olmayan kesirli basamaklar içerir.

Örnekler

Aşağıdaki örnek, değerlerin style dize gösterimlerini Int64 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 yorumlanma yollarından bazılarını da gösterir.

using System;
using System.Globalization;

public class ParseInt64
{
   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
      {
         long number = Int64.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 Int64 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 Int64 type.
//       Unable to convert '631,900'.
//       Converted '631,900' to 631900.
open System
open System.Globalization

let convert (value: string) style provider =
    try
        let number = Int64.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 Int64 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 Int64 type.
//       Unable to convert '631,900'.
//       Converted '631,900' to 631900.
Imports System.Globalization

Module ParseInt64
   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 Long = Int64.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 Int64 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 Int64 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 parametrede s izin verilen stil öğelerini (boşluk veya pozitif işaret gibi) tanımlar. Sabit listesindeki bit bayraklarının NumberStyles bir bileşimi olmalıdır. değerine styles bağlı olarak parametresi aşağıdaki öğeleri içerebilir:

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

Veya içeriyorsa styleAllowHexSpecifier:

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

fractional_digits

exponential_digits
0 İle 9 arasında bir basamak dizisi.
, Kültüre özgü binler basamaklarını ayıran simge. tarafından belirtilen provider kültürün binlik ayırıcısı bayrağını style içeriyorsa NumberStyles.AllowThousands içinde s görünebilir.
. Bir kültüre özgü ondalık nokta sembolü. bayrağını içeriyorsaNumberStyles.AllowDecimalPoint, tarafından provider belirtilen kültürün ondalık nokta simgesi içinde sstyle 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 OverflowException oluşturulur.
E Değerin üstel gösterimde temsil edildiğini gösteren 'e' veya 'E' karakteri. parametresi, s 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 ondalık basamağı olan bir dize (stile NumberStyles.None karşılık gelir) türün aralığındaysa Int64 her zaman başarıyla ayrıştırılır. Kalan NumberStyles üyelerin çoğu, bu giriş dizesinde bulunması gerekmeyen öğeleri denetler. Aşağıdaki tabloda, tek tek NumberStyles üyelerin içinde sbulunabilecek öğeleri nasıl etkilediği gösterilir.

Bileşik olmayan NumberStyles değerleri Basamaklara olarak s bileşeninde izin verilen öğeler
NumberStyles.None Yalnızca ondalık basamaklar.
NumberStyles.AllowDecimalPoint Ondalık ayırıcı ( . ) ve kesirli basamaklar öğ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österimi de kullanabilir.
NumberStyles.AllowLeadingWhite başındaki sws öğesi.
NumberStyles.AllowTrailingWhite sonundaki sws öğesi.
NumberStyles.AllowLeadingSign Basamakların önüne bir işaret görünebilir.
NumberStyles.AllowTrailingSign Basamakların ardından 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ılsa da "0xC9AF3" ayrıştırılmaz. içinde bulunabilecek style diğer bayraklar yalnızca ve NumberStyles.AllowTrailingWhite'tirNumberStyles.AllowLeadingWhite. (Numaralandırma, NumberStyles her iki boşluk bayrağını da içeren bileşik sayı stiline NumberStyles.HexNumbersahiptir.)

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

Ayrıca bkz.

Şunlara uygulanır

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Kaynak:
Int64.cs
Kaynak:
Int64.cs
Kaynak:
Int64.cs

Bir sayının belirtilen stil ve kültüre özgü biçimdeki span gösterimini 64 bit imzalı tamsayı eşdeğerine dönüştürür.

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

Parametreler

s
ReadOnlySpan<Char>

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

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.

provider
IFormatProvider

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

Döndürülenler

içinde belirtilen ssayıya eşdeğer 64 bit imzalı tamsayı.

Uygulamalar

Şunlara uygulanır

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Kaynak:
Int64.cs
Kaynak:
Int64.cs

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

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

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(String, IFormatProvider)

Kaynak:
Int64.cs
Kaynak:
Int64.cs
Kaynak:
Int64.cs

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

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

Parametreler

s
String

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

provider
IFormatProvider

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

Döndürülenler

içinde belirtilen ssayıya eşdeğer 64 bit imzalı tamsayı.

Uygulamalar

Özel durumlar

s, null değeridir.

s doğru biçimde değil.

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

Örnekler

Aşağıdaki örnek, bir Web formunun düğme tıklamalı 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 Int64 değere dönüştürmek için yöntemine geçirilirParse(String, IFormatProvider).

protected void OkToLong_Click(object sender, EventArgs e)
{
    string locale;
    long 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 = Int64.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 OkToLong_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OkToLong.Click
   Dim locale As String
   Dim culture As CultureInfo
   Dim number As Long

   ' 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 = Int64.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 Int64 değere dönüştürmek için kullanılır. Örneğin, bir kullanıcı tarafından bir HTML metin kutusuna girilen metni 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ç içindeki öğeler ([ ve ]) isteğe bağlıdır ve diğer öğeler aşağıdaki gibidir.

ws İsteğe bağlı bir boşluk.

imza İsteğe bağlı bir işaret.

basamaklar 0 ile 9 arasında bir basamak dizisi.

s parametresi stil kullanılarak NumberStyles.Integer yorumlanır. Ondalık basamakların yanı sıra, baştaki ve sondaki boşluklara önünde bir im ile birlikte izin verilir. içinde sbulunabilecek stil öğelerini açıkça tanımlamak için yöntemini kullanın Int64.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 için kullanılır.

Ayrıca bkz.

Şunlara uygulanır

Parse(String)

Kaynak:
Int64.cs
Kaynak:
Int64.cs
Kaynak:
Int64.cs

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

public:
 static long Parse(System::String ^ s);
public static long Parse (string s);
static member Parse : string -> int64
Public Shared Function Parse (s As String) As Long

Parametreler

s
String

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

Döndürülenler

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

Özel durumlar

s, null değeridir.

s doğru biçimde değil.

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

Örnekler

Aşağıdaki örnekte, yöntemini kullanarak bir dize değerinin 64 bit imzalı tamsayı değerine nasıl dönüştürüldüğü gösterilmektedir Int64.Parse(String) . Ardından sonuçta elde edilen uzun tamsayı değerini görüntüler.

using System;

public class ParseInt64
{
   public static void Main()
   {
      Convert("  179042  ");
      Convert(" -2041326 ");
      Convert(" +8091522 ");
      Convert("   1064.0   ");
      Convert("  178.3");
      Convert(String.Empty);
      Convert(((decimal) Int64.MaxValue) + 1.ToString());
   }

   private static void Convert(string value)
   {
      try
      {
         long number = Int64.Parse(value);
         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.", value);
      }
   }
}
// This example displays the following output to the console:
//       Converted '  179042  ' to 179042.
//       Converted ' -2041326 ' to -2041326.
//       Converted ' +8091522 ' to 8091522.
//       Unable to convert '   1064.0   '.
//       Unable to convert '  178.3'.
//       Unable to convert ''.
//       '92233720368547758071' is out of range.
open System

let convert value =
    try
        let number = Int64.Parse value
        printfn $"Converted '{value}' to {number}."
    with
    | :? FormatException ->
        printfn $"Unable to convert '{value}'."
    | :? OverflowException ->
        printfn $"'{value}' is out of range."

convert "  179042  "
convert " -2041326 "
convert " +8091522 "
convert "   1064.0   "
convert "  178.3"
convert String.Empty

decimal Int64.MaxValue + 1M
|> string
|> convert

// This example displays the following output to the console:
//       Converted '  179042  ' to 179042.
//       Converted ' -2041326 ' to -2041326.
//       Converted ' +8091522 ' to 8091522.
//       Unable to convert '   1064.0   '.
//       Unable to convert '  178.3'.
//       Unable to convert ''.
//       '92233720368547758071' is out of range.
Module ParseInt64
   Public Sub Main()
      Convert("  179032  ")
      Convert(" -2041326 ")
      Convert(" +8091522 ")
      Convert("   1064.0   ")
      Convert("  178.3")
      Convert(String.Empty)
      Convert((CDec(Int64.MaxValue) + 1).ToString())
   End Sub

   Private Sub Convert(value As String)
      Try
         Dim number As Long = Int64.Parse(value)
         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.", value)      
      End Try
   End Sub
End Module
' This example displays the following output to the console:
'       Converted '  179032  ' to 179032.
'       Converted ' -2041326 ' to -2041326.
'       Converted ' +8091522 ' to 8091522.
'       Unable to convert '   1064.0   '.
'       Unable to convert '  178.3'.
'       Unable to convert ''.
'       '9223372036854775808' is out of range.

Açıklamalar

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

[ws][sign]digits[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.
rakamlar 0 İle 9 arasında değişen bir basamak dizisi.

s parametresi stil kullanılarak NumberStyles.Integer yorumlanır. Ondalık basamakların yanı sıra, baştaki ve sondaki boşluklara önünde bir im ile birlikte izin verilir. içinde sbulunabilecek stil öğelerini açıkça tanımlamak için veya Int64.Parse(String, NumberStyles, IFormatProvider) yöntemini kullanınInt64.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. Başka bir kültürün biçimlendirme bilgilerini kullanarak bir dizeyi Int64.Parse(String, NumberStyles, IFormatProvider) ayrıştırmak için yöntemini kullanın.

Ayrıca bkz.

Şunlara uygulanır

Parse(ReadOnlySpan<Char>, IFormatProvider)

Kaynak:
Int64.cs
Kaynak:
Int64.cs
Kaynak:
Int64.cs

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

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

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(ReadOnlySpan<Byte>, IFormatProvider)

Kaynak:
Int64.cs
Kaynak:
Int64.cs

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

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

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(String, NumberStyles)

Kaynak:
Int64.cs
Kaynak:
Int64.cs
Kaynak:
Int64.cs

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

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

Parametreler

s
String

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

style
NumberStyles

İzin verilen biçimini sgösteren bit düzeyinde bir değer bileşimiNumberStyles. Belirtilmesi gereken tipik bir değerdir Integer.

Döndürülenler

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

Özel durumlar

s, null değeridir.

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.

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

-veya-

style kesirli basamakları destekler ancak s sıfır olmayan kesirli basamaklar içerir.

Örnekler

Aşağıdaki örnek, çeşitli Int64 değerlerin Int64.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 (" 106034", NumberStyles.None);
      Convert(" $17,198,064.42", NumberStyles.AllowCurrencySymbol |
                                 NumberStyles.Number);
      Convert(" $17,198,064.00", NumberStyles.AllowCurrencySymbol |
                                 NumberStyles.Number);
      Convert("103E06", NumberStyles.AllowExponent);
      Convert("1200E-02", NumberStyles.AllowExponent);
      Convert("1200E-03", NumberStyles.AllowExponent);
      Convert("-1,345,791", NumberStyles.AllowThousands);
      Convert("(1,345,791)", NumberStyles.AllowThousands |
                             NumberStyles.AllowParentheses);
      Convert("FFCA00A0", NumberStyles.HexNumber);
      Convert("0xFFCA00A0", NumberStyles.HexNumber);
   }

   private static void Convert(string value, NumberStyles style)
   {
      try
      {
         long number = Int64.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 Int64 type.", value);
      }
   }
}
// The example displays the following output to the console:
//       Converted '104.0' to 104.
//       '104.9' is out of range of the Int64 type.
//       Unable to convert ' 106034'.
//       ' $17,198,064.42' is out of range of the Int64 type.
//       Converted ' $17,198,064.00' to 17198064.
//       Converted '103E06' to 103000000.
//       Converted '1200E-02' to 12.
//       '1200E-03' is out of range of the Int64 type.
//       Unable to convert '-1,345,791'.
//       Converted '(1,345,791)' to -1345791.
//       Converted 'FFCA00A0' to 4291428512.
//       Unable to convert '0xFFCA00A0'.
open System
open System.Globalization

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

convert "104.0" NumberStyles.AllowDecimalPoint
convert "104.9" NumberStyles.AllowDecimalPoint
convert " 106034" NumberStyles.None
convert " $17,198,064.42" (NumberStyles.AllowCurrencySymbol ||| NumberStyles.Number)
convert " $17,198,064.00" (NumberStyles.AllowCurrencySymbol ||| NumberStyles.Number)
convert "103E06" NumberStyles.AllowExponent
convert "1200E-02" NumberStyles.AllowExponent
convert "1200E-03" NumberStyles.AllowExponent
convert "-1,345,791" NumberStyles.AllowThousands
convert "(1,345,791)" (NumberStyles.AllowThousands ||| NumberStyles.AllowParentheses)
convert "FFCA00A0" NumberStyles.HexNumber
convert "0xFFCA00A0" NumberStyles.HexNumber


// The example displays the following output to the console:
//       converted '104.0' to 104.
//       '104.9' is out of range of the Int64 type.
//       Unable to convert ' 106034'.
//       ' $17,198,064.42' is out of range of the Int64 type.
//       converted ' $17,198,064.00' to 17198064.
//       converted '103E06' to 103000000.
//       converted '1200E-02' to 12.
//       '1200E-03' is out of range of the Int64 type.
//       Unable to convert '-1,345,791'.
//       converted '(1,345,791)' to -1345791.
//       converted 'FFCA00A0' to 4291428512.
//       Unable to convert '0xFFCA00A0'.
Imports System.Globalization

Module ParseInt64
   Public Sub Main()
      Convert("104.0", NumberStyles.AllowDecimalPoint)    
      Convert("104.9", NumberStyles.AllowDecimalPoint)
      Convert (" 106034", NumberStyles.None)
      Convert(" $17,198,064.42", NumberStyles.AllowCurrencySymbol Or _
                                 NumberStyles.Number)
      Convert(" $17,198,064.00", NumberStyles.AllowCurrencySymbol Or _
                                 NumberStyles.Number)
      Convert("103E06", NumberStyles.AllowExponent)  
      Convert("1200E-02", NumberStyles.AllowExponent)
      Convert("1200E-03", NumberStyles.AllowExponent)
      Convert("-1,345,791", NumberStyles.AllowThousands)
      Convert("(1,345,791)", NumberStyles.AllowThousands Or _
                             NumberStyles.AllowParentheses)
      Convert("FFCA00A0", NumberStyles.HexNumber)                       
      Convert("0xFFCA00A0", NumberStyles.HexNumber)                       
   End Sub
   
   Private Sub Convert(value As String, style As NumberStyles)
      Try
         Dim number As Long = Int64.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 Int64 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 Int64 type.
'       Unable to convert ' 106034'.
'       ' $17,198,064.42' is out of range of the Int64 type.
'       Converted ' $17,198,064.00' to 17198064.
'       Converted '103E06' to 103000000.
'       Converted '1200E-02' to 12.
'       '1200E-03' is out of range of the Int64 type.
'       Unable to convert '-1,345,791'.
'       Converted '(1,345,791)' to -1345791.
'       Converted 'FFCA00A0' to 4291428512.
'       Unable to convert '0xFFCA00A0'.

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. Sabit listesindeki bit bayraklarının NumberStyles bir bileşimi olmalıdır. değerine styles bağlı olarak parametresi aşağıdaki öğeleri içerebilir:

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

Veya içeriyorsa styleAllowHexSpecifier:

[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 boşluk başında sstyle ve bayrağı içeriyorsa sonunda sstyleNumberStyles.AllowTrailingWhite görüntülenebilir.NumberStyles.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 NumberStyles.AllowCurrencySymbol para birimi simgesi içinde sstyle görünebilir.
sign İsteğe bağlı bir işaret. İşaret, bayrağını içeriyorsa başında sstyle ve bayrağını içeriyorsa NumberStyles.AllowLeadingSignNumberStyles.AllowTrailingSign sonunda sstyle görüntülenebilir. Parantezler, bayrağı içeriyorsa NumberStyles.AllowParentheses negatif bir değeri style belirtmek için içinde kullanılabilirs.
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ü binler basamaklarını ayıran simge. bayrağını içeriyorsa geçerli kültürün binlik ayırıcısı NumberStyles.AllowThousands içinde styles görüntülenebilir.
. Bir kültüre özgü ondalık nokta sembolü. bayrağını style içeriyorsa geçerli kültürün NumberStyles.AllowDecimalPoint ondalık noktası simgesi içinde s görüntülenebilir. 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 basamak içeriyorsa, bir OverflowException oluşturulur.
E Değerin üstel gösterimde temsil edildiğini gösteren 'e' veya 'E' karakteri. parametresi, s bayrağını içeriyorsa üstel gösteriminde style bir sayıyı NumberStyles.AllowExponent temsil edebilir.
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 basamak içeren bir dize (stile NumberStyles.None karşılık gelir) türün aralığındaysa Int64 her zaman başarıyla ayrıştırılır. 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 olarak s bileşeninde izin verilen öğeler
None Yalnızca rakamlar öğesi.
AllowDecimalPoint Ondalık ayırıcı ( . ) ve kesirli basamaklar öğeleri.
AllowExponent parametresi üstel s gösterimi de kullanabilir. Üstel gösterimde bir sayıyı temsil ederse s , sonuçta elde edilen sayısal değer sıfır olmayan kesirli basamak içeremez.
AllowLeadingWhite başındaki sws öğesi.
AllowTrailingWhite sonundaki sws öğesi.
AllowLeadingSign başındaki ssign öğesi.
AllowTrailingSign sonundaki ssign öğesi.
AllowParentheses Sayısal değeri kapsayan parantez biçimindeki işaret öğesi.
AllowThousands Binlik ayırıcısı ( , ) öğesi.
AllowCurrencySymbol $ öğesi.
Currency Tüm. s parametresi onaltılık bir sayıyı veya üstel gösterimi olan bir sayıyı temsil edemez.
Float başında veya sonundaki sws öğesi, öğesinin sbaşındaki işareti ve ondalık ayırıcı ( . ) simgesi. parametresi üstel s gösterimi de kullanabilir.
Number ws, sign, thousands ayırıcısı ( , ) ve ondalık ayırıcı ( . ) öğeleri.
Any Dışındaki s tüm stiller onaltılık bir sayıyı temsil edemez.

NumberStyles.AllowHexSpecifier Bayrağı kullanılıyorsa, s ön eki olmayan onaltılık bir değer olmalıdır. Örneğin, "C9AF3" başarıyla ayrıştırılsa da "0xC9AF3" ayrıştırılmaz. parametresiyle s birleştirilebilen diğer bayraklar yalnızca ve NumberStyles.AllowTrailingWhite'tirNumberStyles.AllowLeadingWhite. (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. 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 Int64.Parse(String, NumberStyles, IFormatProvider) .

Ayrıca bkz.

Şunlara uygulanır