SByte.Parse 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 8 bit imzalı 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 8 bit imzalı eşdeğerine dönüştürür. |
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider) |
Belirtilen stilde ve kültüre özgü biçimdeki bir sayının span gösterimini 8 bit imzalı 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) |
Belirli bir kültüre özgü biçimdeki bir sayının dize gösterimini 8 bit imzalı tamsayı eşdeğerine dönüştürür. |
Parse(String) |
Bir sayının dize gösterimini 8 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 8 bit işaretli tamsayı eşdeğerine dönüştürür. |
Parse(String, NumberStyles, IFormatProvider)
- Kaynak:
- SByte.cs
- Kaynak:
- SByte.cs
- Kaynak:
- SByte.cs
Önemli
Bu API, CLS uyumlu değildir.
- CLS uyumlu alternatif
- System.Int16.Parse(String, NumberStyles, IFormatProvider)
Belirtilen stilde ve kültüre özgü biçimdeki bir sayının dize gösterimini 8 bit imzalı eşdeğerine dönüştürür.
public:
static System::SByte Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider);
public:
static System::SByte Parse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider) = System::Numerics::INumberBase<System::SByte>::Parse;
[System.CLSCompliant(false)]
public static sbyte Parse (string s, System.Globalization.NumberStyles style, IFormatProvider provider);
public static sbyte Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
[System.CLSCompliant(false)]
public static sbyte Parse (string s, System.Globalization.NumberStyles style, IFormatProvider? provider);
[<System.CLSCompliant(false)>]
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> sbyte
static member Parse : string * System.Globalization.NumberStyles * IFormatProvider -> sbyte
Public Shared Function Parse (s As String, style As NumberStyles, provider As IFormatProvider) As SByte
Parametreler
- s
- String
Dönüştürülecek sayıyı içeren dize. Dize, style
tarafından belirtilen stil kullanılarak yorumlanır.
- style
- NumberStyles
s
içinde bulunabilecek stil öğelerini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değer Integer.
- provider
- IFormatProvider
s
hakkında kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
provider
null
ise, iş parçacığı geçerli kültürü kullanılır.
Döndürülenler
s
parametresinde belirtilen sayıya eşdeğer 8 bit imzalı bayt değeri.
Uygulamalar
- Öznitelikler
Özel durumlar
style
NumberStyles bir değer değildir.
-veya-
style
, AllowHexSpecifier ve HexNumberbirleşimi değildir.
s
null
.
s
, style
ile uyumlu bir biçimde değildir.
s
, SByte.MinValue'den küçük veya SByte.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, sayıların çeşitli dize gösterimlerini imzalı tamsayı değerlerine dönüştürmek için Parse(String, NumberStyles, IFormatProvider) yönteminin kullanımını gösterir.
using System;
using System.Globalization;
public class SByteConversion
{
NumberFormatInfo provider = NumberFormatInfo.CurrentInfo;
public static void Main()
{
string stringValue;
NumberStyles style;
stringValue = " 123 ";
style = NumberStyles.None;
CallParseOperation(stringValue, style);
stringValue = "000,000,123";
style = NumberStyles.Integer | NumberStyles.AllowThousands;
CallParseOperation(stringValue, style);
stringValue = "-100";
style = NumberStyles.AllowLeadingSign;
CallParseOperation(stringValue, style);
stringValue = "100-";
style = NumberStyles.AllowLeadingSign;
CallParseOperation(stringValue, style);
stringValue = "100-";
style = NumberStyles.AllowTrailingSign;
CallParseOperation(stringValue, style);
stringValue = "$100";
style = NumberStyles.AllowCurrencySymbol;
CallParseOperation(stringValue, style);
style = NumberStyles.Integer;
CallParseOperation(stringValue, style);
style = NumberStyles.AllowDecimalPoint;
CallParseOperation("100.0", style);
stringValue = "1e02";
style = NumberStyles.AllowExponent;
CallParseOperation(stringValue, style);
stringValue = "(100)";
style = NumberStyles.AllowParentheses;
CallParseOperation(stringValue, style);
}
private static void CallParseOperation(string stringValue,
NumberStyles style)
{
sbyte number;
if (stringValue == null)
Console.WriteLine("Cannot parse a null string...");
try
{
number = sbyte.Parse(stringValue, style);
Console.WriteLine("SByte.Parse('{0}', {1})) = {2}",
stringValue, style, number);
}
catch (FormatException)
{
Console.WriteLine("'{0}' and {1} throw a FormatException",
stringValue, style);
}
catch (OverflowException)
{
Console.WriteLine("'{0}' is outside the range of a signed byte",
stringValue);
}
}
}
// The example displays the following information to the console:
// ' 123 ' and None throw a FormatException
// SByte.Parse('000,000,123', Integer, AllowThousands)) = 123
// SByte.Parse('-100', AllowLeadingSign)) = -100
// '100-' and AllowLeadingSign throw a FormatException
// SByte.Parse('100-', AllowTrailingSign)) = -100
// SByte.Parse('$100', AllowCurrencySymbol)) = 100
// '$100' and Integer throw a FormatException
// SByte.Parse('100.0', AllowDecimalPoint)) = 100
// SByte.Parse('1e02', AllowExponent)) = 100
// SByte.Parse('(100)', AllowParentheses)) = -100
open System
open System.Globalization
let provider = NumberFormatInfo.CurrentInfo
let callParseOperation stringValue (style: NumberStyles) =
if stringValue = null then
printfn "Cannot parse a null string..."
else
try
let number = SByte.Parse(stringValue, style)
printfn $"SByte.Parse('{stringValue}', {style})) = {number}"
with
| :? FormatException ->
printfn $"'{stringValue}' and {style} throw a FormatException"
| :? OverflowException ->
printfn $"'{stringValue}' is outside the range of a signed byte"
[<EntryPoint>]
let main _ =
let stringValue = " 123 "
let style = NumberStyles.None
callParseOperation stringValue style
let stringValue = "000,000,123"
let style = NumberStyles.Integer ||| NumberStyles.AllowThousands
callParseOperation stringValue style
let stringValue = "-100"
let style = NumberStyles.AllowLeadingSign
callParseOperation stringValue style
let stringValue = "100-"
let style = NumberStyles.AllowLeadingSign
callParseOperation stringValue style
let stringValue = "100-"
let style = NumberStyles.AllowTrailingSign
callParseOperation stringValue style
let stringValue = "$100"
let style = NumberStyles.AllowCurrencySymbol
callParseOperation stringValue style
let style = NumberStyles.Integer
callParseOperation stringValue style
let style = NumberStyles.AllowDecimalPoint
callParseOperation "100.0" style
let stringValue = "1e02"
let style = NumberStyles.AllowExponent
callParseOperation stringValue style
let stringValue = "(100)"
let style = NumberStyles.AllowParentheses
callParseOperation stringValue style
0
// The example displays the following information to the console:
// ' 123 ' and None throw a FormatException
// SByte.Parse('000,000,123', Integer, AllowThousands)) = 123
// SByte.Parse('-100', AllowLeadingSign)) = -100
// '100-' and AllowLeadingSign throw a FormatException
// SByte.Parse('100-', AllowTrailingSign)) = -100
// SByte.Parse('$100', AllowCurrencySymbol)) = 100
// '$100' and Integer throw a FormatException
// SByte.Parse('100.0', AllowDecimalPoint)) = 100
// SByte.Parse('1e02', AllowExponent)) = 100
// SByte.Parse('(100)', AllowParentheses)) = -100
Imports System.Globalization
Module modMain
Public Sub Main()
Dim byteString As String
byteString = " 123"
ParseString(byteString, NumberStyles.None)
ParseString(byteString, NumberStyles.Integer)
byteString = "3A"
ParseString(byteString, NumberStyles.AllowHexSpecifier)
byteString = "21"
ParseString(byteString, NumberStyles.Integer)
ParseString(byteString, NumberStyles.AllowHexSpecifier)
byteString = "-22"
ParseString(byteString, NumberStyles.Integer)
ParseString(byteString, NumberStyles.AllowParentheses)
byteString = "(45)"
ParseString(byteString, NumberStyles.AllowParentheses)
byteString = "000,000,056"
ParseString(byteString, NumberStyles.Integer)
ParseString(byteString, NumberStyles.Integer Or NumberStyles.AllowThousands)
End Sub
Private Sub ParseString(value As String, style As NumberStyles)
Dim number As SByte
If value Is Nothing Then Console.WriteLine("Cannot parse a null string...")
Try
number = SByte.Parse(value, style, NumberFormatInfo.CurrentInfo)
Console.WriteLine("SByte.Parse('{0}', {1}) = {2}", value, style, number)
Catch e As FormatException
Console.WriteLine("'{0}' and {1} throw a FormatException", value, style)
Catch e As OverflowException
Console.WriteLine("'{0}' is outside the range of a signed byte",
value)
End Try
End Sub
End Module
' The example displays the following information to the console:
' ' 123' and None throw a FormatException
' SByte.Parse(" 123", Integer)) = 123
' SByte.Parse("3A", AllowHexSpecifier)) = 58
' SByte.Parse("21", Integer)) = 21
' SByte.Parse("21", AllowHexSpecifier)) = 33
' SByte.Parse("-22", Integer)) = -22
' '-22' and AllowParentheses throw a FormatException
' SByte.Parse("(45)", AllowParentheses)) = -45
' '000,000,056' and Integer throw a FormatException
' SByte.Parse("000,000,056", Integer, AllowThousands)) = 56
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 veya negatif işaret simgesi gibi) tanımlar.
NumberStyles numaralandırmasından bit bayraklarının birleşimi olmalıdır.
style
değerine bağlı olarak, s
parametresi aşağıdaki öğeleri içerebilir:
[ws] [$] [sign]basamak[.fractional_digits][E[sign]exponential_digits][ws]
style
AllowHexSpecifieriçeriyorsa, s
parametresi aşağıdaki öğeleri içerebilir:
[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 style NumberStyles.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.CurrencyPositivePattern özelliği 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, style NumberStyles.AllowLeadingSign bayrağı içeriyorsa s başında ve style NumberStyles.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 | 0 ile 9 arasında bir basamak dizisi. |
. | 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. |
fractional_digits |
style
NumberStyles.AllowExponent bayrağı içeriyorsa 0-9 basamaklarının bir veya daha fazla tekrarı veya değilse 0 rakamının bir veya daha fazla yinelenme sayısı. Kesirli basamaklar s yalnızca style NumberStyles.AllowDecimalPoint bayrağı içeriyorsa görüntülenebilir. |
E | Değerin üstel (bilimsel) gösterimde temsil olduğunu gösteren "e" veya "E" karakteri.
s parametresi, style NumberStyles.AllowExponent bayrağı içeriyorsa, bir sayıyı üstel gösterimde temsil edebilir. |
exponential_digits | 0 ile 9 arasında bir basamak dizisi.
s parametresi, style NumberStyles.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) her zaman başarıyla ayrıştırılıyor. Kalan NumberStyles üyelerinin çoğu, bu giriş dizesinde mevcut olabilecek ancak mevcut olması 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 izin verilen öğeler |
---|---|
NumberStyles.None | Yalnızca ondalık basamaklar. |
NumberStyles.AllowDecimalPoint | Ondalık nokta (.) ve fractional_digits öğeleri. Ancak, stil NumberStyles.AllowExponent bayrağı içermiyorsa, fractional_digits yalnızca bir veya daha fazla 0 basamak içermelidir; aksi takdirde, bir OverflowException oluşturulur. |
NumberStyles.AllowExponent | exponential_digitsile birlikte üstel gösterimi gösteren "e" veya "E" karakteri. |
NumberStyles.AllowLeadingWhite |
s başındaki ws öğesi. |
NumberStyles.AllowTrailingWhite |
s sonundaki ws öğesi. |
NumberStyles.AllowLeadingSign | basamak |
NumberStyles.AllowTrailingSign | basamaksonra pozitif bir işaret. |
NumberStyles.AllowParentheses | basamaklardan önce ve sonra ayraçlar, negatif bir değeri göstermek için. |
NumberStyles.AllowThousands | Grup ayırıcısı (,) öğesi. Grup ayırıcısı s içinde görünse de, önünde yalnızca bir veya daha fazla 0 basamak bulunmalıdır. |
NumberStyles.AllowCurrencySymbol | Para birimi ($) öğesi. |
NumberStyles.AllowHexSpecifier bayrağı kullanılırsa, s
onaltılık bir değer olmalıdır. Geçerli onaltılık basamaklar 0-9, a-f ve A-F'dir. Bununla 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.)
Not
s
parametresi onaltılık bir sayının dize gösterimiyse, bu parametreden önce onu onaltılık sayı olarak ayıran herhangi bir süsleme (0x
veya &h
gibi) bulunamaz. Bu, ayrıştırma işleminin bir özel durum oluşturmasına neden olur.
s
onaltılık bir sayıyı temsil ederse, Parse(String, NumberStyles) yöntemi baytın yüksek sıralı bitini işaret biti olarak yorumlar.
provider
parametresi, GetFormat yöntemi s
biçimi hakkında kültüre özgü bilgiler sağlayan bir NumberFormatInfo nesnesi döndüren IFormatProvider bir uygulamadır. Ayrıştırma işlemine özel biçimlendirme bilgileri sağlamak için provider
parametresini kullanmanın üç yolu vardır:
Biçimlendirme bilgileri sağlayan gerçek NumberFormatInfo nesnesini geçirebilirsiniz. (GetFormat uygulaması yalnızca kendini döndürür.)
Biçimlendirmesi kullanılacak kültürü belirten bir CultureInfo nesnesi geçirebilirsiniz. NumberFormat özelliği biçimlendirme bilgileri sağlar.
Özel bir IFormatProvider uygulaması geçirebilirsiniz. GetFormat yöntemi, biçimlendirme bilgileri sağlayan NumberFormatInfo nesnesini örneklemeli ve döndürmelidir.
provider
null
ise, geçerli kültür için NumberFormatInfo nesnesi kullanılır.
Şunlara uygulanır
Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)
- Kaynak:
- SByte.cs
- Kaynak:
- SByte.cs
- Kaynak:
- SByte.cs
Önemli
Bu API, CLS uyumlu değildir.
Belirtilen stilde ve kültüre özgü biçimdeki bir sayının span gösterimini 8 bit imzalı eşdeğerine dönüştürür.
public static sbyte Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
[System.CLSCompliant(false)]
public static sbyte Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider provider = default);
[System.CLSCompliant(false)]
public static sbyte Parse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> sbyte
[<System.CLSCompliant(false)>]
static member Parse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider -> sbyte
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As SByte
Parametreler
- s
- ReadOnlySpan<Char>
Dönüştürülecek sayıyı temsil eden karakterleri içeren bir yayılma alanı. Span, style
tarafından belirtilen stil kullanılarak yorumlanır.
- style
- NumberStyles
s
içinde bulunabilecek stil öğelerini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değer Integer.
- provider
- IFormatProvider
s
hakkında kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
provider
null
ise, iş parçacığı geçerli kültürü kullanılır.
Döndürülenler
s
parametresinde belirtilen sayıya eşdeğer 8 bit imzalı bayt değeri.
Uygulamalar
- Öznitelikler
Şunlara uygulanır
Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)
- Kaynak:
- SByte.cs
- Kaynak:
- SByte.cs
UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.
public static sbyte Parse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.Integer, IFormatProvider? provider = default);
static member Parse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider -> sbyte
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), Optional style As NumberStyles = System.Globalization.NumberStyles.Integer, Optional provider As IFormatProvider = Nothing) As SByte
Parametreler
- utf8Text
- ReadOnlySpan<Byte>
Ayrıştırılacak UTF-8 karakter aralığı.
- style
- NumberStyles
utf8Text
içinde bulunabilecek sayı stillerinin bit düzeyinde birleşimi.
- provider
- IFormatProvider
utf8Text
hakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne.
Döndürülenler
utf8Text
ayrıştırma sonucu.
Uygulamalar
Şunlara uygulanır
Parse(String, IFormatProvider)
- Kaynak:
- SByte.cs
- Kaynak:
- SByte.cs
- Kaynak:
- SByte.cs
Belirli bir kültüre özgü biçimdeki bir sayının dize gösterimini 8 bit imzalı tamsayı eşdeğerine dönüştürür.
public:
static System::SByte Parse(System::String ^ s, IFormatProvider ^ provider);
public:
static System::SByte Parse(System::String ^ s, IFormatProvider ^ provider) = IParsable<System::SByte>::Parse;
[System.CLSCompliant(false)]
public static sbyte Parse (string s, IFormatProvider provider);
public static sbyte Parse (string s, IFormatProvider? provider);
[System.CLSCompliant(false)]
public static sbyte Parse (string s, IFormatProvider? provider);
[<System.CLSCompliant(false)>]
static member Parse : string * IFormatProvider -> sbyte
static member Parse : string * IFormatProvider -> sbyte
Public Shared Function Parse (s As String, provider As IFormatProvider) As SByte
Parametreler
- provider
- IFormatProvider
s
hakkında kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
provider
null
ise, iş parçacığı geçerli kültürü kullanılır.
Döndürülenler
s
içinde belirtilen sayıya eşdeğer 8 bit imzalı tamsayı.
Uygulamalar
- Öznitelikler
Özel durumlar
s
null
.
s
doğru biçimde değil.
s
, SByte.MinValue veya SByte.MaxValue'den büyük bir sayıyı temsil eder.
Örnekler
Aşağıdaki örnek, tilde (~) negatif işareti olarak tanımlayan özel bir NumberFormatInfo nesnesi tanımlar. Ardından bu özel NumberFormatInfo nesnesini ve sabit kültürü temsil eden bir CultureInfo nesnesini kullanarak bir dizi sayısal dizeyi ayrıştırıyor.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
NumberFormatInfo nf = new NumberFormatInfo();
nf.NegativeSign = "~";
string[] values = { "-103", "+12", "~16", " 1", "~255" };
IFormatProvider[] providers = { nf, CultureInfo.InvariantCulture };
foreach (IFormatProvider provider in providers)
{
Console.WriteLine("Conversions using {0}:", ((object) provider).GetType().Name);
foreach (string value in values)
{
try {
Console.WriteLine(" Converted '{0}' to {1}.",
value, SByte.Parse(value, provider));
}
catch (FormatException) {
Console.WriteLine(" Unable to parse '{0}'.", value);
}
catch (OverflowException) {
Console.WriteLine(" '{0}' is out of range of the SByte type.", value);
}
}
}
}
}
// The example displays the following output:
// Conversions using NumberFormatInfo:
// Unable to parse '-103'.
// Converted '+12' to 12.
// Converted '~16' to -16.
// Converted ' 1' to 1.
// '~255' is out of range of the SByte type.
// Conversions using CultureInfo:
// Converted '-103' to -103.
// Converted '+12' to 12.
// Unable to parse '~16'.
// Converted ' 1' to 1.
// Unable to parse '~255'.
open System
open System.Globalization
let nf = NumberFormatInfo()
nf.NegativeSign <- "~"
let values = [| "-103"; "+12"; "~16"; " 1"; "~255" |]
let providers: IFormatProvider[] = [| nf; CultureInfo.InvariantCulture |]
for provider in providers do
printfn $"Conversions using {(box provider).GetType().Name}:"
for value in values do
try
printfn $" Converted '{value}' to {SByte.Parse(value, provider)}."
with
| :? FormatException ->
printfn $" Unable to parse '{value}'."
| :? OverflowException ->
printfn $" '{value}' is out of range of the SByte type."
// The example displays the following output:
// Conversions using NumberFormatInfo:
// Unable to parse '-103'.
// Converted '+12' to 12.
// Converted '~16' to -16.
// Converted ' 1' to 1.
// '~255' is out of range of the SByte type.
// Conversions using CultureInfo:
// Converted '-103' to -103.
// Converted '+12' to 12.
// Unable to parse '~16'.
// Converted ' 1' to 1.
// Unable to parse '~255'.
Imports System.Globalization
Module Example
Public Sub Main()
Dim nf As New NumberFormatInfo()
nf.NegativeSign = "~"
Dim values() As String = { "-103", "+12", "~16", " 1", "~255" }
Dim providers() As IFormatProvider = { nf, CultureInfo.InvariantCulture }
For Each provider As IFormatProvider In providers
Console.WriteLine("Conversions using {0}:", CObj(provider).GetType().Name)
For Each value As String In values
Try
Console.WriteLine(" Converted '{0}' to {1}.", _
value, SByte.Parse(value, provider))
Catch e As FormatException
Console.WriteLine(" Unable to parse '{0}'.", value)
Catch e As OverflowException
Console.WriteLine(" '{0}' is out of range of the SByte type.", value)
End Try
Next
Next
End Sub
End Module
' The example displays '
' Conversions using NumberFormatInfo:
' Unable to parse '-103'.
' Converted '+12' to 12.
' Converted '~16' to -16.
' Converted ' 1' to 1.
' '~255' is out of range of the SByte type.
' Conversions using CultureInfo:
' Converted '-103' to -103.
' Converted '+12' to 12.
' Unable to parse '~16'.
' Converted ' 1' to 1.
' Unable to parse '~255'.
Açıklamalar
s
parametresi formun bir sayısını içerir:
[ws] [sign]rakamlar[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 Integer stili kullanılarak yorumlanır. Bayt değerinin ondalık basamaklarına ek olarak, yalnızca baştaki ve sondaki boşluklara ve önünde işareti olan boşluklara izin verilir. stil öğelerini s
'de bulunabilecek kültüre özgü biçimlendirme bilgileriyle açıkça tanımlamak için Parse(String, NumberStyles, IFormatProvider) yöntemini kullanın.
provider
parametresi, GetFormat yöntemi s
biçimi hakkında kültüre özgü bilgiler sağlayan bir NumberFormatInfo nesnesi döndüren IFormatProvider bir uygulamadır. Ayrıştırma işlemine özel biçimlendirme bilgileri sağlamak için provider
parametresini kullanmanın üç yolu vardır:
Biçimlendirme bilgileri sağlayan gerçek NumberFormatInfo nesnesini geçirebilirsiniz. (GetFormat uygulaması yalnızca kendini döndürür.)
Biçimlendirmesi kullanılacak kültürü belirten bir CultureInfo nesnesi geçirebilirsiniz. NumberFormat özelliği biçimlendirme bilgileri sağlar.
Özel bir IFormatProvider uygulaması geçirebilirsiniz. GetFormat yöntemi, biçimlendirme bilgileri sağlayan NumberFormatInfo nesnesini örneklemeli ve döndürmelidir.
provider
null
ise, geçerli kültür için NumberFormatInfo nesnesi kullanılır.
Ayrıca bkz.
- ToString()
- TryParse
- .NET'da Sayısal Dizeleri Ayrıştırma
Şunlara uygulanır
Parse(String)
- Kaynak:
- SByte.cs
- Kaynak:
- SByte.cs
- Kaynak:
- SByte.cs
Bir sayının dize gösterimini 8 bit imzalı tamsayı eşdeğerine dönüştürür.
public:
static System::SByte Parse(System::String ^ s);
[System.CLSCompliant(false)]
public static sbyte Parse (string s);
public static sbyte Parse (string s);
[<System.CLSCompliant(false)>]
static member Parse : string -> sbyte
static member Parse : string -> sbyte
Public Shared Function Parse (s As String) As SByte
Parametreler
Döndürülenler
s
parametresindeki sayıya eşdeğer 8 bit imzalı tamsayı.
- Öznitelikler
Özel durumlar
s
null
.
s
, isteğe bağlı bir işaretten ve ardından bir basamak dizisi (sıfırdan dokuza kadar) oluşmaz.
s
, SByte.MinValue veya SByte.MaxValue'den büyük bir sayıyı temsil eder.
Örnekler
Aşağıdaki örnekte, Parse yöntemi kullanılarak bir dize değerinin imzalı bayt değerine nasıl dönüştürüldüğü gösterilmektedir. Sonuçta elde edilen imzalı bayt değeri konsolda görüntülenir.
// Define an array of numeric strings.
string[] values = { "-16", " -3", "+ 12", " +12 ", " 12 ",
"+120", "(103)", "192", "-160" };
// Parse each string and display the result.
foreach (string value in values)
{
try {
Console.WriteLine("Converted '{0}' to the SByte value {1}.",
value, SByte.Parse(value));
}
catch (FormatException) {
Console.WriteLine("'{0}' cannot be parsed successfully by SByte type.",
value);
}
catch (OverflowException) {
Console.WriteLine("'{0}' is out of range of the SByte type.",
value);
}
}
// The example displays the following output:
// Converted '-16' to the SByte value -16.
// Converted ' -3' to the SByte value -3.
// '+ 12' cannot be parsed successfully by SByte type.
// Converted ' +12 ' to the SByte value 12.
// Converted ' 12 ' to the SByte value 12.
// Converted '+120' to the SByte value 120.
// '(103)' cannot be parsed successfully by SByte type.
// '192' is out of range of the SByte type.
// '-160' is out of range of the SByte type.
open System
// Define an array of numeric strings.
let values =
[| "-16"; " -3"; "+ 12"; " +12 "; " 12 "
"+120"; "(103)"; "192"; "-160" |]
// Parse each string and display the result.
for value in values do
try
printfn $"Converted '{value}' to the SByte value {SByte.Parse value}."
with
| :? FormatException ->
printfn $"'{value}' cannot be parsed successfully by SByte type."
| :? OverflowException ->
printfn $"'{value}' is out of range of the SByte type."
// The example displays the following output:
// Converted '-16' to the SByte value -16.
// Converted ' -3' to the SByte value -3.
// '+ 12' cannot be parsed successfully by SByte type.
// Converted ' +12 ' to the SByte value 12.
// Converted ' 12 ' to the SByte value 12.
// Converted '+120' to the SByte value 120.
// '(103)' cannot be parsed successfully by SByte type.
// '192' is out of range of the SByte type.
// '-160' is out of range of the SByte type.
' Define an array of numeric strings.
Dim values() As String = { "-16", " -3", "+ 12", " +12 ", " 12 ", _
"+120", "(103)", "192", "-160" }
' Parse each string and display the result.
For Each value As String In values
Try
Console.WriteLine("Converted '{0}' to the SByte value {1}.", _
value, SByte.Parse(value))
Catch e As FormatException
Console.WriteLine("'{0}' cannot be parsed successfully by SByte type.", _
value)
Catch e As OverflowException
Console.WriteLine("'{0}' is out of range of the SByte type.", _
value)
End Try
Next
' The example displays the following output:
' Converted '-16' to the SByte value -16.
' Converted ' -3' to the SByte value -3.
' '+ 12' cannot be parsed successfully by SByte type.
' Converted ' +12 ' to the SByte value 12.
' Converted ' 12 ' to the SByte value 12.
' Converted '+120' to the SByte value 120.
' '(103)' cannot be parsed successfully by SByte type.
' '192' is out of range of the SByte type.
' '-160' is out of range of the SByte type.
Açıklamalar
s
parametresi formun bir sayısını içerir:
[ws] [sign]rakamlar[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. Bayt değerinin ondalık basamaklarına ek olarak, yalnızca baştaki ve sonunda pozitif veya negatif işareti olan boşluklara izin verilir.
s
içinde bulunabilecek stil öğelerini açıkça tanımlamak için Parse(String, NumberStyles) veya Parse(String, NumberStyles, IFormatProvider) yöntemini kullanın.
s
parametresi, geçerli sistem kültürü için başlatılan bir NumberFormatInfo biçimlendirme bilgileri kullanılarak ayrıştırılır. Daha fazla bilgi için bkz. NumberFormatInfo.CurrentInfo. Başka bir kültürün biçimlendirme bilgilerini kullanarak bir dizeyi ayrıştırmak için Parse(String, NumberStyles, IFormatProvider) yöntemini kullanın.
Ayrıca bkz.
- .NET'da Sayısal Dizeleri Ayrıştırma
- .NET'da
Biçimlendirme Türleri
Şunlara uygulanır
Parse(ReadOnlySpan<Char>, IFormatProvider)
- Kaynak:
- SByte.cs
- Kaynak:
- SByte.cs
- Kaynak:
- SByte.cs
Bir karakter aralığını bir değere ayrıştırıyor.
public:
static System::SByte Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<System::SByte>::Parse;
public static sbyte Parse (ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> sbyte
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As SByte
Parametreler
- s
- ReadOnlySpan<Char>
Ayrıştırılacak karakterlerin yayılma alanı.
- provider
- IFormatProvider
s
hakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne.
Döndürülenler
s
ayrıştırma sonucu.
Uygulamalar
Şunlara uygulanır
Parse(ReadOnlySpan<Byte>, IFormatProvider)
- Kaynak:
- SByte.cs
- Kaynak:
- SByte.cs
UTF-8 karakterlik bir aralığı bir değere ayrıştırıyor.
public:
static System::SByte Parse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider) = IUtf8SpanParsable<System::SByte>::Parse;
public static sbyte Parse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider);
static member Parse : ReadOnlySpan<byte> * IFormatProvider -> sbyte
Public Shared Function Parse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider) As SByte
Parametreler
- utf8Text
- ReadOnlySpan<Byte>
Ayrıştırılacak UTF-8 karakter aralığı.
- provider
- IFormatProvider
utf8Text
hakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne.
Döndürülenler
utf8Text
ayrıştırma sonucu.
Uygulamalar
Şunlara uygulanır
Parse(String, NumberStyles)
- Kaynak:
- SByte.cs
- Kaynak:
- SByte.cs
- Kaynak:
- SByte.cs
Belirtilen stildeki bir sayının dize gösterimini 8 bit işaretli tamsayı eşdeğerine dönüştürür.
public:
static System::SByte Parse(System::String ^ s, System::Globalization::NumberStyles style);
[System.CLSCompliant(false)]
public static sbyte Parse (string s, System.Globalization.NumberStyles style);
public static sbyte Parse (string s, System.Globalization.NumberStyles style);
[<System.CLSCompliant(false)>]
static member Parse : string * System.Globalization.NumberStyles -> sbyte
static member Parse : string * System.Globalization.NumberStyles -> sbyte
Public Shared Function Parse (s As String, style As NumberStyles) As SByte
Parametreler
- s
- String
Dönüştürülecek bir sayı içeren dize. Dize, style
tarafından belirtilen stil kullanılarak yorumlanır.
- style
- NumberStyles
s
iç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
s
içinde belirtilen sayıya eşdeğer 8 bit imzalı tamsayı.
- Öznitelikler
Özel durumlar
s
null
.
s
, style
ile uyumlu bir biçimde değildir.
s
, SByte.MinValue veya SByte.MaxValue'den büyük bir sayıyı temsil eder.
-veya-
s
sıfır olmayan kesirli basamaklar içerir.
style
NumberStyles bir değer değildir.
-veya-
style
, AllowHexSpecifier ve HexNumber değerlerinin birleşimi değildir.
Örnekler
Aşağıdaki örnek, SByte değerlerin dize gösterimlerini Parse(String, NumberStyles) yöntemiyle ayrıştırmaktadır. Örneğin geçerli kültürü en-US.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
NumberStyles style;
sbyte number;
// Parse value with no styles allowed.
string[] values1 = { " 121 ", "121", "-121" };
style = NumberStyles.None;
Console.WriteLine("Styles: {0}", style.ToString());
foreach (string value in values1)
{
try {
number = SByte.Parse(value, style);
Console.WriteLine(" Converted '{0}' to {1}.", value, number);
}
catch (FormatException) {
Console.WriteLine(" Unable to parse '{0}'.", value);
}
}
Console.WriteLine();
// Parse value with trailing sign.
style = NumberStyles.Integer | NumberStyles.AllowTrailingSign;
string[] values2 = { " 103+", " 103 +", "+103", "(103)", " +103 " };
Console.WriteLine("Styles: {0}", style.ToString());
foreach (string value in values2)
{
try {
number = SByte.Parse(value, style);
Console.WriteLine(" Converted '{0}' to {1}.", value, number);
}
catch (FormatException) {
Console.WriteLine(" Unable to parse '{0}'.", value);
}
catch (OverflowException) {
Console.WriteLine(" '{0}' is out of range of the SByte type.", value);
}
}
Console.WriteLine();
}
}
// The example displays the following output:
// Styles: None
// Unable to parse ' 121 '.
// Converted '121' to 121.
// Unable to parse '-121'.
//
// Styles: Integer, AllowTrailingSign
// Converted ' 103+' to 103.
// Converted ' 103 +' to 103.
// Converted '+103' to 103.
// Unable to parse '(103)'.
// Converted ' +103 ' to 103.
open System
open System.Globalization
// Parse value with no styles allowed.
let values1 = [| " 121 "; "121"; "-121" |]
let style = NumberStyles.None
printfn $"Styles: {style}"
for value in values1 do
try
let number = SByte.Parse(value, style)
printfn $" Converted '{value}' to {number}."
with :? FormatException ->
printfn $" Unable to parse '{value}'."
printfn ""
// Parse value with trailing sign.
let style2 = NumberStyles.Integer ||| NumberStyles.AllowTrailingSign
let values2 = [| " 103+"; " 103 +"; "+103"; "(103)"; " +103 " |]
printfn $"Styles: {style2}"
for value in values2 do
try
let number = SByte.Parse(value, style2)
printfn $" Converted '{value}' to {number}."
with
| :? FormatException ->
printfn $" Unable to parse '{value}'."
| :? OverflowException ->
printfn $" '{value}' is out of range of the SByte type."
printfn ""
// The example displays the following output:
// Styles: None
// Unable to parse ' 121 '.
// Converted '121' to 121.
// Unable to parse '-121'.
//
// Styles: Integer, AllowTrailingSign
// Converted ' 103+' to 103.
// Converted ' 103 +' to 103.
// Converted '+103' to 103.
// Unable to parse '(103)'.
// Converted ' +103 ' to 103.
Imports System.Globalization
Module Example
Public Sub Main()
Dim style As NumberStyles
Dim number As SByte
' Parse value with no styles allowed.
Dim values1() As String = { " 121 ", "121", "-121" }
style = NumberStyles.None
Console.WriteLine("Styles: {0}", style.ToString())
For Each value As String In values1
Try
number = SByte.Parse(value, style)
Console.WriteLine(" Converted '{0}' to {1}.", value, number)
Catch e As FormatException
Console.WriteLine(" Unable to parse '{0}'.", value)
End Try
Next
Console.WriteLine()
' Parse value with trailing sign.
style = NumberStyles.Integer Or NumberStyles.AllowTrailingSign
Dim values2() As String = { " 103+", " 103 +", "+103", "(103)", " +103 " }
Console.WriteLine("Styles: {0}", style.ToString())
For Each value As String In values2
Try
number = SByte.Parse(value, style)
Console.WriteLine(" Converted '{0}' to {1}.", value, number)
Catch e As FormatException
Console.WriteLine(" Unable to parse '{0}'.", value)
Catch e As OverflowException
Console.WriteLine(" '{0}' is out of range of the SByte type.", value)
End Try
Next
Console.WriteLine()
End Sub
End Module
' The example displays the following output:
' Styles: None
' Unable to parse ' 121 '.
' Converted '121' to 121.
' Unable to parse '-121'.
'
' Styles: Integer, AllowTrailingSign
' Converted ' 103+' to 103.
' Converted ' 103 +' to 103.
' Converted '+103' to 103.
' Unable to parse '(103)'.
' Converted ' +103 ' to 103.
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 veya negatif işaret simgesi gibi) tanımlar.
NumberStyles numaralandırmasından bit bayraklarının birleşimi olmalıdır.
style
değerine bağlı olarak, s
parametresi aşağıdaki öğeleri içerebilir:
[ws] [$] [sign]basamak[.fractional_digits][E[sign]exponential_digits][ws]
style
NumberStyles.AllowHexSpecifieriçeriyorsa, s
parametresi aşağıdaki öğeleri içerebilir:
[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 stil NumberStyles.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.CurrencyPositivePattern özelliği 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, style NumberStyles.AllowLeadingSign bayrağı içeriyorsa s başında ve style NumberStyles.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 | 0 ile 9 arasında bir basamak dizisi. |
. | 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. |
fractional_digits |
style
NumberStyles.AllowExponent bayrağı içeriyorsa 0-9 basamaklarının bir veya daha fazla tekrarı veya değilse 0 rakamının bir veya daha fazla yinelenme sayısı. Kesirli basamaklar s yalnızca style NumberStyles.AllowDecimalPoint bayrağı içeriyorsa görüntülenebilir. |
E | Değerin üstel (bilimsel) gösterimde temsil olduğunu gösteren "e" veya "E" karakteri.
s parametresi, style NumberStyles.AllowExponent bayrağı içeriyorsa, bir sayıyı üstel gösterimde temsil edebilir. |
exponential_digits | 0-9 basamaklarının bir veya daha fazla tekrarı.
s parametresi, style NumberStyles.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) her zaman başarıyla ayrıştırılıyor. Geri kalan NumberStyles üyelerinin çoğu, giriş dizesinde mevcut olabilecek ancak mevcut olması 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 izin verilen öğeler |
---|---|
NumberStyles.None | Yalnızca ondalık basamaklar. |
NumberStyles.AllowDecimalPoint | Ondalık nokta (.) ve fractional_digits öğeleri. Ancak, style NumberStyles.AllowExponent bayrağı içermiyorsa, fractional_digits yalnızca bir veya daha fazla 0 basamak içermelidir; aksi takdirde, bir OverflowException oluşturulur. |
NumberStyles.AllowExponent | exponential_digitsile birlikte üstel gösterimi gösteren "e" veya "E" karakteri. |
NumberStyles.AllowLeadingWhite |
s başındaki ws öğesi. |
NumberStyles.AllowTrailingWhite |
s sonundaki ws öğesi. |
NumberStyles.AllowLeadingSign | basamak |
NumberStyles.AllowTrailingSign | basamaksonra pozitif bir işaret. |
NumberStyles.AllowParentheses | işareti, sayısal değeri kapsayan parantez biçiminde öğesidir. |
NumberStyles.AllowThousands | Grup ayırıcı (,) öğesi. Grup ayırıcısı s içinde görünse de, önünde yalnızca bir veya daha fazla 0 basamak bulunmalıdır. |
NumberStyles.AllowCurrencySymbol | Para birimi ($) öğesi. |
NumberStyles.AllowHexSpecifier bayrağı kullanılırsa, s
onaltılık bir değer olmalıdır. Geçerli onaltılık basamaklar 0-9, a-f ve A-F'dir. "0x" gibi bir ön ek desteklenmez ve ayrıştırma işleminin başarısız olmasına neden olur.
style
'de birleştirilebilen 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ı stili içerir.)
Not
s
parametresi onaltılık bir sayının dize gösterimiyse, bu parametreden önce onu onaltılık sayı olarak ayıran herhangi bir süsleme (0x
veya &h
gibi) bulunamaz. Bu, ayrıştırma işleminin bir özel durum oluşturmasına neden olur.
s
onaltılık bir sayıyı temsil ederse, Parse(String, NumberStyles) yöntemi baytın yüksek sıralı bitini işaret biti olarak yorumlar.
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. Başka bir kültürün biçimlendirme bilgilerini kullanmak için Parse(String, NumberStyles, IFormatProvider) aşırı yüklemesini çağırın.
Ayrıca bkz.
- ToString()
- TryParse
- .NET'da Sayısal Dizeleri Ayrıştırma
- .NET'da
Biçimlendirme Türleri