Int64.TryParse Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir sayının dize gösterimini 64 bit imzalı tamsayı eşdeğerine dönüştürür. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| TryParse(String, IFormatProvider, Int64) |
Bir dizeyi bir değere ayrıştırmaya çalışır. |
| TryParse(ReadOnlySpan<Char>, Int64) |
Bir sayının span gösterimini 64 bit imzalı tamsayı eşdeğerine dönüştürür. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir. |
| TryParse(String, Int64) |
Bir sayının dize gösterimini 64 bit imzalı tamsayı eşdeğerine dönüştürür. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir. |
| TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int64) |
UTF-8 karakterlik bir aralığı bir değere ayrıştırmaya çalışır. |
| TryParse(ReadOnlySpan<Char>, IFormatProvider, Int64) |
Bir karakter aralığını bir değere ayrıştırmaya çalışır. |
| TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Int64) |
UTF-8 karakterlik bir aralığı bir değere ayrıştırmaya çalışır. |
| TryParse(ReadOnlySpan<Byte>, Int64) |
Bir sayının dize gösterimini içeren UTF-8 karakter aralığını 64 bit imzalı tamsayı eşdeğerine dönüştürmeye çalışır. |
| TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Int64) |
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. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir. |
| TryParse(String, NumberStyles, IFormatProvider, Int64) |
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. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir. |
TryParse(String, IFormatProvider, Int64)
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
Bir dizeyi bir değere ayrıştırmaya çalışır.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] long % result) = IParsable<long>::TryParse;
public static bool TryParse(string? s, IFormatProvider? provider, out long result);
static member TryParse : string * IFormatProvider * int64 -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As Long) As Boolean
Parametreler
- s
- String
Ayrıştırmak için dize.
- provider
- IFormatProvider
hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
- result
- Int64
Bu yöntem döndürdüğünde, başarıyla ayrıştırma s işleminin sonucunu veya hatada tanımlanmamış bir değeri içerir.
Döndürülenler
true başarıyla ayrıştırıldıysa s ; değilse, false.
Şunlara uygulanır
TryParse(ReadOnlySpan<Char>, Int64)
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
Bir sayının span gösterimini 64 bit imzalı tamsayı eşdeğerine dönüştürür. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir.
public:
static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] long % result);
public static bool TryParse(ReadOnlySpan<char> s, out long result);
static member TryParse : ReadOnlySpan<char> * int64 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Long) As Boolean
Parametreler
- s
- ReadOnlySpan<Char>
Dönüştürülecek sayıyı temsil eden karakterleri içeren bir yayılma alanı.
- result
- Int64
Bu yöntem döndürdüğünde, içinde yer salan sayının eşdeğeri olan 64 bit imzalı tamsayı değerini, dönüştürme başarılı olursa değerini veya dönüştürme başarısız olursa sıfırı içerir. parametre null veya Emptydeğeri doğru biçimde değilse s veya Int64.MinValue değerinden küçük veya Int64.MaxValue değerinden büyük bir sayıyı temsil ederse dönüştürme başarısız olur. Bu parametre başlatılmamış olarak geçirilir; başlangıçta verilen result tüm değerlerin üzerine yazılır.
Döndürülenler
true başarıyla dönüştürüldüyse s ; aksi takdirde , false.
Şunlara uygulanır
TryParse(String, Int64)
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- 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. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir.
public:
static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] long % result);
public static bool TryParse(string s, out long result);
public static bool TryParse(string? s, out long result);
static member TryParse : string * int64 -> bool
Public Shared Function TryParse (s As String, ByRef result As Long) As Boolean
Parametreler
- s
- String
Dönüştürülecek bir sayı içeren dize.
- result
- Int64
Bu yöntem döndürdüğünde, içinde yer salan sayının eşdeğeri olan 64 bit imzalı tamsayı değerini, dönüştürme başarılı olursa değerini veya dönüştürme başarısız olursa sıfırı içerir. parametre null veya Emptydeğeri doğru biçimde değilse s veya Int64.MinValue değerinden küçük veya Int64.MaxValue değerinden büyük bir sayıyı temsil ederse dönüştürme başarısız olur. Bu parametre başlatılmamış olarak geçirilir; başlangıçta verilen result tüm değerlerin üzerine yazılır.
Döndürülenler
true başarıyla dönüştürüldüyse s ; aksi takdirde , false.
Örnekler
Aşağıdaki örnek, bir dizi farklı dize değeriyle yöntemini çağırır Int64.TryParse(String, Int64) .
using System;
public class StringParsing
{
public static void Main()
{
TryToParse(null);
TryToParse("160519");
TryToParse("9432.0");
TryToParse("16,667");
TryToParse(" -322 ");
TryToParse("+4302");
TryToParse("(100);");
TryToParse("01FA");
}
private static void TryToParse(string value)
{
bool success = Int64.TryParse(value, out long number);
if (success)
{
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
else
{
if (value == null) value = "";
Console.WriteLine("Attempted conversion of '{0}' failed.", value);
}
}
}
// The example displays the following output to the console:
// Attempted conversion of '' failed.
// Converted '160519' to 160519.
// Attempted conversion of '9432.0' failed.
// Attempted conversion of '16,667' failed.
// Converted ' -322 ' to -322.
// Converted '+4302' to 4302.
// Attempted conversion of '(100);' failed.
// Attempted conversion of '01FA' failed.
open System
let tryToParse (value: string) =
match Int64.TryParse value with
| true, number ->
printfn $"Converted '{value}' to {number}."
| _ ->
let value =
if isNull value then
""
else
value
printfn $"Attempted conversion of '{value}' failed."
tryToParse null
tryToParse "160519"
tryToParse "9432.0"
tryToParse "16,667"
tryToParse " -322 "
tryToParse "+4302"
tryToParse "(100);"
tryToParse "01FA"
// The example displays the following output to the console:
// Attempted conversion of '' failed.
// Converted '160519' to 160519.
// Attempted conversion of '9432.0' failed.
// Attempted conversion of '16,667' failed.
// Converted ' -322 ' to -322.
// Converted '+4302' to 4302.
// Attempted conversion of '(100);' failed.
// Attempted conversion of '01FA' failed.
Module StringParsing
Public Sub Main()
TryToParse(Nothing)
TryToParse("160519")
TryToParse("9432.0")
TryToParse("16,667")
TryToParse(" -322 ")
TryToParse("+4302")
TryToParse("(100)")
TryToParse("01FA")
End Sub
Private Sub TryToParse(value As String)
Dim number As Long
Dim result As Boolean = Int64.TryParse(value, number)
If result Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
If value Is Nothing Then value = ""
Console.WriteLine("Attempted conversion of '{0}' failed.", value)
End If
End Sub
End Module
' The example displays the following output to the console:
' Attempted conversion of '' failed.
' Converted '160519' to 160519.
' Attempted conversion of '9432.0' failed.
' Attempted conversion of '16,667' failed.
' Converted ' -322 ' to -322.
' Converted '+4302' to 4302.
' Attempted conversion of '(100)' failed.
' Attempted conversion of '01FA' failed.
Bu örnekte yönteminin TryParse(String, Int64) dönüştüremediği dizelerden bazıları şunlardır:
"9432.0". Dize ondalık ayırıcı içeremediğinden dönüştürme başarısız olur; yalnızca tam sayı basamakları içermelidir.
"16,667". Dize grup ayırıcıları içeremediğinden dönüştürme başarısız olur; yalnızca tam sayı basamakları içermelidir.
"(100)". Dize, geçerli kültürün NumberFormatInfo.NegativeSign ve NumberFormatInfo.NumberNegativePattern özellikleri tarafından tanımlanandan farklı bir negatif işaret içeremediğinden dönüştürme başarısız olur.
"01FA". Dize onaltılık basamak içeremediğinden dönüştürme başarısız olur; yalnızca ondalık basamaklar içermelidir.
Açıklamalar
TryParse yöntemi yöntemine Parse benzer, ancak TryParse dönüştürme başarısız olursa yöntemi özel durum oluşturmaz. Geçersiz olan ve başarıyla ayrıştırılamayan bir durumunda s test etmek için FormatException özel durum işleme kullanma gereksinimini ortadan kaldırır.
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ı bir 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. stil öğelerini içinde bulunabilecek skültüre özgü biçimlendirme bilgileriyle birlikte açıkça tanımlamak için yöntemini kullanın TryParse(String, NumberStyles, IFormatProvider, Int64) .
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.
yönteminin TryParse bu aşırı yüklemesi, parametredeki s tüm basamakları ondalık basamaklar olarak yorumlar. Onaltılık bir sayının dize gösterimini ayrıştırmak için aşırı yüklemeyi çağırın TryParse(String, NumberStyles, IFormatProvider, Int64) .
Ayrıca bkz.
- Parse(String)
- ToString()
- .NET'te Sayısal Dizeleri Ayrıştırma
- Örnek: .NET Core WinForms Biçimlendirme Yardımcı Programı (C#)
- Örnek: .NET Core WinForms Biçimlendirme Yardımcı Programı (Visual Basic)
Şunlara uygulanır
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int64)
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
UTF-8 karakterlik bir aralığı bir değere ayrıştırmaya çalışır.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] long % result) = IUtf8SpanParsable<long>::TryParse;
public static bool TryParse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out long result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * int64 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As Long) As Boolean
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.
- result
- Int64
Sonuç olarak, başarıyla ayrıştırma utf8Text işleminin sonucunu veya hatada tanımlanmamış bir değeri içerir.
Döndürülenler
true başarıyla ayrıştırıldıysa utf8Text ; değilse, false.
Şunlara uygulanır
TryParse(ReadOnlySpan<Char>, IFormatProvider, Int64)
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
Bir karakter aralığını bir değere ayrıştırmaya çalışır.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] long % result) = ISpanParsable<long>::TryParse;
public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out long result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * int64 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As Long) As Boolean
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.
- result
- Int64
Bu yöntem döndürdüğünde, başarıyla ayrıştırma sişleminin sonucunu veya hatada tanımlanmamış bir değeri içerir.
Döndürülenler
true başarıyla ayrıştırıldıysa s ; değilse, false.
Şunlara uygulanır
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Int64)
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
UTF-8 karakterlik bir aralığı bir değere ayrıştırmaya çalışır.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] long % result) = System::Numerics::INumberBase<long>::TryParse;
public static bool TryParse(ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out long result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * int64 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As Long) As Boolean
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.
- result
- Int64
Sonuç olarak, başarıyla ayrıştırma utf8Text işleminin sonucunu veya hatada tanımlanmamış bir değeri içerir.
Döndürülenler
true başarıyla ayrıştırıldıysa utf8Text ; değilse, false.
Şunlara uygulanır
TryParse(ReadOnlySpan<Byte>, Int64)
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
Bir sayının dize gösterimini içeren UTF-8 karakter aralığını 64 bit imzalı tamsayı eşdeğerine dönüştürmeye çalışır.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] long % result);
public static bool TryParse(ReadOnlySpan<byte> utf8Text, out long result);
static member TryParse : ReadOnlySpan<byte> * int64 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As Long) As Boolean
Parametreler
- utf8Text
- ReadOnlySpan<Byte>
Dönüştürülecek sayıyı temsil eden UTF-8 karakterlerini içeren bir yayılma alanı.
- result
- Int64
Bu yöntem döndürdüğünde, dönüştürme başarılı olursa içinde bulunan sayıya eşdeğer 64 bit imzalı utf8Text tamsayı değerini veya dönüştürme başarısız olursa sıfırı içerir. Bu parametre başlatılmamış olarak geçirilir; başlangıçta sonuçta sağlanan tüm değerlerin üzerine yazılır.
Döndürülenler
true başarıyla dönüştürüldüyse utf8Text ; aksi takdirde , false.
Şunlara uygulanır
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Int64)
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- 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. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir.
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] long % result) = System::Numerics::INumberBase<long>::TryParse;
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] long % result);
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out long result);
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out long result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * int64 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Long) As Boolean
Parametreler
- s
- ReadOnlySpan<Char>
Dönüştürülecek sayıyı temsil eden karakterleri içeren bir yayılma alanı. Span, tarafından stylebelirtilen stil kullanılarak yorumlanır.
- 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
hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
- result
- Int64
Bu yöntem döndürdüğünde, içinde yer salan sayının eşdeğeri olan 64 bit imzalı tamsayı değerini, dönüştürme başarılı olursa değerini veya dönüştürme başarısız olursa sıfırı içerir. parametresi null veya Emptyile uyumlu stylebir biçimde değilse s veya Int64.MinValue değerinden küçük veya Int64.MaxValue değerinden büyük bir sayıyı temsil ederse dönüştürme başarısız olur. Bu parametre başlatılmamış olarak geçirilir; başlangıçta verilen result tüm değerlerin üzerine yazılır.
Döndürülenler
true başarıyla dönüştürüldüyse s ; aksi takdirde , false.
Şunlara uygulanır
TryParse(String, NumberStyles, IFormatProvider, Int64)
- Kaynak:
- Int64.cs
- Kaynak:
- Int64.cs
- 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. Dönüş değeri, dönüştürmenin başarılı mı yoksa başarısız mı olduğunu gösterir.
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] long % result);
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] long % result) = System::Numerics::INumberBase<long>::TryParse;
public static bool TryParse(string s, System.Globalization.NumberStyles style, IFormatProvider provider, out long result);
public static bool TryParse(string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out long result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * int64 -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Long) As Boolean
Parametreler
- s
- String
Dönüştürülecek bir sayı içeren dize. Dize, tarafından stylebelirtilen stil kullanılarak yorumlanır.
- 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
hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
- result
- Int64
Bu yöntem döndürdüğünde, içinde yer salan sayının eşdeğeri olan 64 bit imzalı tamsayı değerini, dönüştürme başarılı olursa değerini veya dönüştürme başarısız olursa sıfırı içerir. parametresi null veya Emptyile uyumlu stylebir biçimde değilse s veya Int64.MinValue değerinden küçük veya Int64.MaxValue değerinden büyük bir sayıyı temsil ederse dönüştürme başarısız olur. Bu parametre başlatılmamış olarak geçirilir; başlangıçta verilen result tüm değerlerin üzerine yazılır.
Döndürülenler
true başarıyla dönüştürüldüyse s ; aksi takdirde , false.
Özel durumlar
style bir NumberStyles değer değildir.
-veya-
styleve HexNumber değerlerinin AllowHexSpecifier birleşimi değildir.
Örnekler
Aşağıdaki örnek, yöntemini bir dizi farklı dize ve NumberStyles değerle çağırırTryParse(String, NumberStyles, IFormatProvider, Int64).
using System;
using System.Globalization;
public class StringParsing
{
public static void Main()
{
string numericString;
NumberStyles styles;
numericString = "106779";
styles = NumberStyles.Integer;
CallTryParse(numericString, styles);
numericString = "-30677";
styles = NumberStyles.None;
CallTryParse(numericString, styles);
styles = NumberStyles.AllowLeadingSign;
CallTryParse(numericString, styles);
numericString = "301677-";
CallTryParse(numericString, styles);
styles = styles | NumberStyles.AllowTrailingSign;
CallTryParse(numericString, styles);
numericString = "$10634";
styles = NumberStyles.Integer;
CallTryParse(numericString, styles);
styles = NumberStyles.Integer | NumberStyles.AllowCurrencySymbol;
CallTryParse(numericString, styles);
numericString = "10345.00";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "10345.72";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "22,593";
styles = NumberStyles.Integer | NumberStyles.AllowThousands;
CallTryParse(numericString, styles);
numericString = "12E-01";
styles = NumberStyles.Integer | NumberStyles.AllowExponent;
CallTryParse(numericString, styles);
numericString = "12E03";
CallTryParse(numericString, styles);
numericString = "80c1";
CallTryParse(numericString, NumberStyles.HexNumber);
numericString = "0x80C1";
CallTryParse(numericString, NumberStyles.HexNumber);
}
private static void CallTryParse(string stringToConvert, NumberStyles styles)
{
CultureInfo provider;
// If currency symbol is allowed, use en-US culture.
if ((styles & NumberStyles.AllowCurrencySymbol) > 0)
provider = new CultureInfo("en-US");
else
provider = CultureInfo.InvariantCulture;
bool success = Int64.TryParse(stringToConvert, styles,
provider, out long number);
if (success)
Console.WriteLine($"Converted '{stringToConvert}' to {number}.");
else
Console.WriteLine($"Attempted conversion of '{stringToConvert}' failed.");
}
}
// The example displays the following output to the console:
// Converted '106779' to 106779.
// Attempted conversion of '-30677' failed.
// Converted '-30677' to -30677.
// Attempted conversion of '301677-' failed.
// Converted '301677-' to -301677.
// Attempted conversion of '$10634' failed.
// Converted '$10634' to 10634.
// Converted '10345.00' to 10345.
// Attempted conversion of '10345.72' failed.
// Converted '22,593' to 22593.
// Attempted conversion of '12E-01' failed.
// Converted '12E03' to 12000.
// Converted '80c1' to 32961.
// Attempted conversion of '0x80C1' failed.
open System
open System.Globalization
let callTryParse (stringToConvert: string) styles =
let provider =
// If currency symbol is allowed, use en-US culture.
if int (styles &&& NumberStyles.AllowCurrencySymbol) > 0 then
CultureInfo "en-US"
else
CultureInfo.InvariantCulture
match Int64.TryParse(stringToConvert, styles, provider) with
| true, number ->
printfn $"Converted '{stringToConvert}' to {number}."
| _ ->
printfn $"Attempted conversion of '{stringToConvert}' failed."
[<EntryPoint>]
let main _ =
let numericString = "106779"
let styles = NumberStyles.Integer
callTryParse numericString styles
let numericString = "-30677"
let styles = NumberStyles.None
callTryParse numericString styles
let styles = NumberStyles.AllowLeadingSign
callTryParse numericString styles
let numericString = "301677-"
callTryParse numericString styles
let styles = styles ||| NumberStyles.AllowTrailingSign
callTryParse numericString styles
let numericString = "$10634"
let styles = NumberStyles.Integer
callTryParse numericString styles
let styles = NumberStyles.Integer ||| NumberStyles.AllowCurrencySymbol
callTryParse numericString styles
let numericString = "10345.00"
let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
callTryParse numericString styles
let numericString = "10345.72"
let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
callTryParse numericString styles
let numericString = "22,593"
let styles = NumberStyles.Integer ||| NumberStyles.AllowThousands
callTryParse numericString styles
let numericString = "12E-01"
let styles = NumberStyles.Integer ||| NumberStyles.AllowExponent
callTryParse numericString styles
let numericString = "12E03"
callTryParse numericString styles
let numericString = "80c1"
callTryParse numericString NumberStyles.HexNumber
let numericString = "0x80C1"
callTryParse numericString NumberStyles.HexNumber
0
// The example displays the following output to the console:
// Converted '106779' to 106779.
// Attempted conversion of '-30677' failed.
// Converted '-30677' to -30677.
// Attempted conversion of '301677-' failed.
// Converted '301677-' to -301677.
// Attempted conversion of '$10634' failed.
// Converted '$10634' to 10634.
// Converted '10345.00' to 10345.
// Attempted conversion of '10345.72' failed.
// Converted '22,593' to 22593.
// Attempted conversion of '12E-01' failed.
// Converted '12E03' to 12000.
// Converted '80c1' to 32961.
// Attempted conversion of '0x80C1' failed.
Imports System.Globalization
Module StringParsing
Public Sub Main()
Dim numericString As String
Dim styles As NumberStyles
numericString = "106779"
styles = NumberStyles.Integer
CallTryParse(numericString, styles)
numericString = "-30677"
styles = NumberStyles.None
CallTryParse(numericString, styles)
styles = NumberStyles.AllowLeadingSign
CallTryParse(numericString, styles)
numericString = "301677-"
CallTryParse(numericString, styles)
styles = styles Or NumberStyles.AllowTrailingSign
CallTryParse(numericString, styles)
numericString = "$10634"
styles = NumberStyles.Integer
CallTryParse(numericString, styles)
styles = NumberStyles.Integer Or NumberStyles.AllowCurrencySymbol
CallTryParse(numericString, styles)
numericString = "10345.00"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "10345.72"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "22,593"
styles = NumberStyles.Integer Or NumberStyles.AllowThousands
CallTryParse(numericString, styles)
numericString = "12E-01"
styles = NumberStyles.Integer Or NumberStyles.AllowExponent
CallTryParse(numericString, styles)
numericString = "12E03"
CallTryParse(numericString, styles)
numericString = "80c1"
CallTryParse(numericString, NumberStyles.HexNumber)
numericString = "0x80C1"
CallTryParse(numericString, NumberStyles.HexNumber)
End Sub
Private Sub CallTryParse(stringToConvert As String, styles AS NumberStyles)
Dim number As Long
Dim provider As CultureInfo
' If currency symbol is allowed, use en-US culture.
If CBool(styles And NumberStyles.AllowCurrencySymbol) Then
provider = CultureInfo.CurrentCulture
Else
provider = New CultureInfo("en-US")
End If
Dim result As Boolean = Int64.TryParse(stringToConvert, styles, _
provider, number)
If result Then
Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, number)
Else
Console.WriteLine("Attempted conversion of '{0}' failed.", _
Convert.ToString(stringToConvert))
End If
End Sub
End Module
' The example displays the following output to the console:
' Converted '106779' to 106779.
' Attempted conversion of '-30677' failed.
' Converted '-30677' to -30677.
' Attempted conversion of '301677-' failed.
' Converted '301677-' to -301677.
' Attempted conversion of '$10634' failed.
' Converted '$10634' to 10634.
' Converted '10345.00' to 10345.
' Attempted conversion of '10345.72' failed.
' Converted '22,593' to 22593.
' Attempted conversion of '12E-01' failed.
' Converted '12E03' to 12000.
' Converted '80c1' to 32961.
' Attempted conversion of '0x80C1' failed.
Açıklamalar
TryParse yöntemi yöntemine Parse benzer, ancak TryParse dönüştürme başarısız olursa yöntemi özel durum oluşturmaz. Geçersiz olan ve başarıyla ayrıştırılamayan bir durumunda s test etmek için FormatException özel durum işleme kullanma gereksinimini ortadan kaldırır.
parametresi, style ayrıştırma işleminin başarılı olması için parametrede s izin verilen stil öğelerini (boşluk veya pozitif veya negatif işareti 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 parametresi şunu style içeriyorsa NumberStyles.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ğı içeriyorsa başında s veya bayrağı içeriyorsa sonunda NumberStyles.AllowTrailingWhitesstyle görüntülenebilir.styleNumberStyles.AllowLeadingWhite |
| $ | Kültüre özgü para birimi simgesi. Dizedeki konumu, parametresinin yöntemi 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. veya NumberStyles.AllowTrailingSign bayraklarını içeriyorsa NumberStyles.AllowLeadingSign içinde sstyle bir işaret simgesi görüntülenebilir. |
|
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ı. 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. |
| 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 (bayrağına NumberStyles.None karşılık gelir) her zaman başarıyla ayrıştırılıyor. 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 fractional_digits öğeleri. Ancak , fractional_digits yalnızca bir veya daha fazla 0 basamak içermelidir veya yöntemi döndürür false. |
| NumberStyles.AllowExponent | parametresi üstel s gösterim de kullanabilir. parametresi, s sıfır olmayan bir kesirli bileşen olmadan veri türü aralığındaki Int64 bir tamsayıyı temsil etmelidir. |
| NumberStyles.AllowLeadingWhite | başındaki sws öğesi. |
| NumberStyles.AllowTrailingWhite | sonundaki s öğesi. |
| NumberStyles.AllowLeadingSign | Basamakların önünde 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.Currency | Tüm öğeler.
s parametresi onaltılık bir sayıyı veya üstel gösterimdeki bir sayıyı temsil edemez. |
| NumberStyles.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. |
| NumberStyles.Number | ws, sign, thousands ayırıcısı (,) ve ondalık nokta (.) öğeleri. |
| NumberStyles.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. 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 stile NumberStyles.HexNumbersahiptir.)
provider parametresi, yöntemi nesne döndüren GetFormat bir CultureInfoNumberFormatInfo nesne veya nesne gibi bir NumberFormatInfo uygulamadırIFormatProvider. nesnesi, NumberFormatInfo biçimi shakkında kültüre özgü bilgiler sağlar. ise providernull, NumberFormatInfo geçerli kültürün nesnesi kullanılır.