SByte.Parse Metode

Definisi

Mengonversi representasi string dari angka ke bilangan bulat bertanda tangan 8-bit yang setara.

Overload

Parse(String, NumberStyles, IFormatProvider)

Mengonversi representasi string dari angka yang berada dalam gaya tertentu dan format khusus budaya ke setara dengan yang ditandatangani 8-bit.

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Mengonversi representasi rentang dari angka yang berada dalam gaya tertentu dan format khusus budaya ke setara dengan yang ditandatangani 8-bit.

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Menguraikan rentang karakter UTF-8 ke dalam nilai.

Parse(String, IFormatProvider)

Mengonversi representasi string angka dalam format khusus budaya tertentu ke bilangan bulat bertanda 8-bit yang setara.

Parse(String)

Mengonversi representasi string dari angka ke bilangan bulat bertanda tangan 8-bit yang setara.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Mengurai rentang karakter ke dalam nilai.

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Menguraikan rentang karakter UTF-8 ke dalam nilai.

Parse(String, NumberStyles)

Mengonversi representasi string angka dalam gaya tertentu ke bilangan bulat bertanda tangan 8-bit yang setara.

Parse(String, NumberStyles, IFormatProvider)

Sumber:
SByte.cs
Sumber:
SByte.cs
Sumber:
SByte.cs

Penting

API ini bukan kompatibel CLS.

Alternatif kompatibel CLS
System.Int16.Parse(String, NumberStyles, IFormatProvider)

Mengonversi representasi string dari angka yang berada dalam gaya tertentu dan format khusus budaya ke setara dengan yang ditandatangani 8-bit.

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

Parameter

s
String

String yang berisi angka yang akan dikonversi. String ditafsirkan dengan menggunakan gaya yang ditentukan oleh style.

style
NumberStyles

Kombinasi bitwise dari nilai enumerasi yang menunjukkan elemen gaya yang dapat ada di s. Nilai umum yang akan ditentukan adalah Integer.

provider
IFormatProvider

Objek yang memasok informasi pemformatan khusus budaya tentang s. Jika provider adalah null, budaya utas saat ini digunakan.

Mengembalikan

Nilai byte bertanda tangan 8-bit yang setara dengan angka yang ditentukan dalam s parameter .

Penerapan

Atribut

Pengecualian

style bukan nilai NumberStyles .

-atau-

style bukan kombinasi dari AllowHexSpecifier dan HexNumber.

sadalah null.

s tidak dalam format yang sesuai dengan style.

s mewakili angka yang kurang dari SByte.MinValue atau lebih besar dari SByte.MaxValue.

-atau-

s termasuk bukan nol, digit pecahan.

Contoh

Contoh berikut mengilustrasikan penggunaan Parse(String, NumberStyles, IFormatProvider) metode untuk mengonversi berbagai representasi string angka menjadi nilai bilangan bulat yang ditandatangani.

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

Keterangan

Parameter style menentukan elemen gaya (seperti spasi kosong atau simbol tanda positif atau negatif) yang diizinkan dalam s parameter agar operasi penguraian berhasil. Ini harus berupa kombinasi bendera bit dari NumberStyles enumerasi.

Bergantung pada nilai style, s parameter dapat mencakup elemen berikut:

[ws] [$][sign]digits[.fractional_digits][E[sign]exponential_digits][ws]

Jika style menyertakan AllowHexSpecifier, s parameter dapat menyertakan elemen berikut:

[ws] hexdigits[ws]

Elemen dalam tanda kurung siku ([ dan ]) adalah opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional. Spasi kosong dapat muncul di awal s jika style menyertakan NumberStyles.AllowLeadingWhite bendera, dan dapat muncul di akhir s jika style menyertakan NumberStyles.AllowTrailingWhite bendera.
$ Simbol mata uang khusus budaya. Posisinya dalam string didefinisikan oleh NumberFormatInfo.CurrencyPositivePattern properti dari budaya saat ini. Simbol mata uang budaya saat ini dapat muncul jika sstyle menyertakan NumberStyles.AllowCurrencySymbol bendera .
sign Tanda opsional. Tanda dapat muncul di awal s jika style menyertakan NumberStyles.AllowLeadingSign bendera, dan tanda tersebut dapat muncul di akhir s jika style menyertakan NumberStyles.AllowTrailingSign bendera. Tanda kurung dapat digunakan s untuk menunjukkan nilai negatif jika style menyertakan NumberStyles.AllowParentheses bendera .
Digit Urutan digit dari 0 hingga 9.
. Simbol titik desimal khusus budaya. Simbol titik desimal budaya saat ini dapat muncul jika sstyle menyertakan NumberStyles.AllowDecimalPoint bendera .
fractional_digits Satu atau beberapa kemunculan digit 0-9 jika style menyertakan NumberStyles.AllowExponent bendera, atau satu atau beberapa kemunculan digit 0 jika tidak. Digit pecahan dapat muncul s hanya jika style menyertakan NumberStyles.AllowDecimalPoint bendera.
E Karakter "e" atau "E", yang menunjukkan bahwa nilai diwakili dalam notasi eksponensial (ilmiah). Parameter s dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera .
exponential_digits Urutan digit dari 0 hingga 9. Parameter s dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera .
hexdigits Urutan digit heksadesimal dari 0 hingga f, atau 0 hingga F.

Catatan

Setiap karakter NUL yang mengakhiri (U+0000) di s diabaikan oleh operasi penguraian, terlepas dari style nilai argumen.

String dengan digit desimal saja (yang sesuai dengan NumberStyles.None gaya) selalu berhasil diurai. Sebagian besar elemen kontrol anggota yang tersisa NumberStyles yang mungkin ada, tetapi tidak diharuskan ada, dalam string input ini. Tabel berikut menunjukkan bagaimana anggota individu NumberStyles memengaruhi elemen yang mungkin ada di s.

Nilai non-komposit NumberStyles Elemen yang diizinkan selain s digit
NumberStyles.None Digit desimal saja.
NumberStyles.AllowDecimalPoint Titik desimal (.) dan elemen fractional_digits . Namun, jika gaya tidak menyertakan NumberStyles.AllowExponent bendera, fractional_digits harus terdiri dari hanya satu atau lebih 0 digit; jika tidak, akan OverflowException dilemparkan.
NumberStyles.AllowExponent Karakter "e" atau "E", yang menunjukkan notasi eksponensial, bersama dengan exponential_digits.
NumberStyles.AllowLeadingWhite Elemen ws di awal s.
NumberStyles.AllowTrailingWhite Elemen ws di akhir s.
NumberStyles.AllowLeadingSign Tanda positif sebelum digit.
NumberStyles.AllowTrailingSign Tanda positif setelah digit.
NumberStyles.AllowParentheses Tanda kurung sebelum dan sesudah digit untuk menunjukkan nilai negatif.
NumberStyles.AllowThousands Elemen pemisah grup (,). Meskipun pemisah grup dapat muncul di , pemisah harus didahului soleh hanya satu atau lebih 0 digit.
NumberStyles.AllowCurrencySymbol Elemen mata uang ($).

NumberStyles.AllowHexSpecifier Jika bendera digunakan, s harus berupa nilai heksadesimal. Digit heksadesimal yang valid adalah 0-9, a-f, dan A-F. Satu-satunya bendera lain yang dapat digabungkan dengannya adalah NumberStyles.AllowLeadingWhite dan NumberStyles.AllowTrailingWhite. (Enumerasi NumberStyles mencakup gaya angka komposit, NumberStyles.HexNumber, yang mencakup kedua bendera spasi putih.)

Catatan

s Jika parameter adalah representasi string dari angka heksadesimal, parameter tersebut tidak dapat didahului oleh dekorasi apa pun (seperti 0x atau &h) yang membedakannya sebagai angka heksadesimal. Hal ini menyebabkan operasi penguraian melempar pengecualian.

Jika s mewakili angka heksadesimal, Parse(String, NumberStyles) metode ini menafsirkan bit byte urutan tinggi sebagai bit tanda.

Parameter provider adalah IFormatProvider implementasi yang metodenya GetFormat mengembalikan NumberFormatInfo objek yang menyediakan informasi khusus budaya tentang format s. Ada tiga cara untuk menggunakan provider parameter untuk menyediakan informasi pemformatan kustom ke operasi penguraian:

  • Anda dapat meneruskan objek aktual NumberFormatInfo yang menyediakan informasi pemformatan. (Implementasinya GetFormat hanya mengembalikan dirinya sendiri.)

  • Anda dapat meneruskan CultureInfo objek yang menentukan budaya yang pemformatannya akan digunakan. Propertinya NumberFormat menyediakan informasi pemformatan.

  • Anda dapat melewati implementasi kustom IFormatProvider . Metodenya GetFormat harus membuat instans dan mengembalikan NumberFormatInfo objek yang menyediakan informasi pemformatan.

Jika provider adalah null, NumberFormatInfo objek untuk budaya saat ini digunakan.

Berlaku untuk

Parse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider)

Sumber:
SByte.cs
Sumber:
SByte.cs
Sumber:
SByte.cs

Penting

API ini bukan kompatibel CLS.

Mengonversi representasi rentang dari angka yang berada dalam gaya tertentu dan format khusus budaya ke setara dengan yang ditandatangani 8-bit.

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

Parameter

s
ReadOnlySpan<Char>

Rentang yang berisi karakter yang mewakili angka yang akan dikonversi. Rentang ditafsirkan dengan menggunakan gaya yang ditentukan oleh style.

style
NumberStyles

Kombinasi bitwise dari nilai enumerasi yang menunjukkan elemen gaya yang dapat ada di s. Nilai umum yang akan ditentukan adalah Integer.

provider
IFormatProvider

Objek yang memasok informasi pemformatan khusus budaya tentang s. Jika provider adalah null, budaya utas saat ini digunakan.

Mengembalikan

Nilai byte bertanda tangan 8-bit yang setara dengan angka yang ditentukan dalam s parameter .

Penerapan

Atribut

Berlaku untuk

Parse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider)

Sumber:
SByte.cs
Sumber:
SByte.cs

Menguraikan rentang karakter UTF-8 ke dalam nilai.

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

Parameter

utf8Text
ReadOnlySpan<Byte>

Rentang karakter UTF-8 untuk diurai.

style
NumberStyles

Kombinasi bitwise gaya angka yang dapat ada di utf8Text.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang utf8Text.

Mengembalikan

Hasil penguraian utf8Text.

Penerapan

Berlaku untuk

Parse(String, IFormatProvider)

Sumber:
SByte.cs
Sumber:
SByte.cs
Sumber:
SByte.cs

Penting

API ini bukan kompatibel CLS.

Alternatif kompatibel CLS
System.Int16.Parse(String)

Mengonversi representasi string angka dalam format khusus budaya tertentu ke bilangan bulat bertanda 8-bit yang setara.

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

Parameter

s
String

String yang mewakili angka yang akan dikonversi. String ditafsirkan menggunakan Integer gaya .

provider
IFormatProvider

Objek yang memasok informasi pemformatan khusus budaya tentang s. Jika provider adalah null, budaya utas saat ini digunakan.

Mengembalikan

Bilangan bulat bertanda tangan 8-bit yang setara dengan angka yang ditentukan dalam s.

Penerapan

Atribut

Pengecualian

sadalah null.

s tidak dalam format yang benar.

s mewakili angka yang kurang dari SByte.MinValue atau lebih besar dari SByte.MaxValue.

Contoh

Contoh berikut mendefinisikan objek kustom NumberFormatInfo yang mendefinisikan tilde (~) sebagai tanda negatif. Kemudian mengurai sejumlah string numerik menggunakan objek kustom NumberFormatInfo ini serta CultureInfo objek yang mewakili budaya invarian.

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'.

Keterangan

Parameter s berisi sejumlah formulir:

[ws] [tanda]digits[ws]

Elemen dalam tanda kurung siku ([ dan ]) adalah opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional.
sign Tanda opsional.
Digit Urutan digit mulai dari 0 hingga 9.

Parameter s ditafsirkan menggunakan Integer gaya . Selain digit desimal nilai byte, hanya spasi di depan dan di belakang dengan tanda di depan yang diizinkan. Untuk secara eksplisit menentukan elemen gaya dengan informasi pemformatan khusus budaya yang dapat ada di s, gunakan Parse(String, NumberStyles, IFormatProvider) metode .

Parameter provider adalah IFormatProvider implementasi yang metodenya GetFormat mengembalikan NumberFormatInfo objek yang menyediakan informasi khusus budaya tentang format s. Ada tiga cara untuk menggunakan provider parameter untuk menyediakan informasi pemformatan kustom ke operasi penguraian:

  • Anda dapat meneruskan objek aktual NumberFormatInfo yang menyediakan informasi pemformatan. (Implementasinya GetFormat hanya mengembalikan dirinya sendiri.)

  • Anda dapat meneruskan CultureInfo objek yang menentukan budaya yang pemformatannya akan digunakan. Propertinya NumberFormat menyediakan informasi pemformatan.

  • Anda dapat melewati implementasi kustom IFormatProvider . Metodenya GetFormat harus membuat instans dan mengembalikan NumberFormatInfo objek yang menyediakan informasi pemformatan.

Jika provider adalah null, NumberFormatInfo objek untuk budaya saat ini digunakan.

Lihat juga

Berlaku untuk

Parse(String)

Sumber:
SByte.cs
Sumber:
SByte.cs
Sumber:
SByte.cs

Penting

API ini bukan kompatibel CLS.

Alternatif kompatibel CLS
System.Int16.Parse(String)

Mengonversi representasi string dari angka ke bilangan bulat bertanda tangan 8-bit yang setara.

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

Parameter

s
String

String yang mewakili angka yang akan dikonversi. String ditafsirkan menggunakan Integer gaya .

Mengembalikan

Bilangan bulat bertanda tangan 8-bit yang setara dengan angka yang terkandung dalam s parameter .

Atribut

Pengecualian

sadalah null.

s tidak terdiri dari tanda opsional diikuti dengan urutan digit (nol hingga sembilan).

s mewakili angka yang kurang dari SByte.MinValue atau lebih besar dari SByte.MaxValue.

Contoh

Contoh berikut menunjukkan cara mengonversi nilai string menjadi nilai byte yang ditandatangani menggunakan Parse metode . Nilai byte yang ditandatangani yang dihasilkan kemudian ditampilkan ke konsol.

// 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.

Keterangan

Parameter s berisi sejumlah formulir:

[ws] [tanda]digits[ws]

Elemen dalam tanda kurung siku ([ dan ]) adalah opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional.
sign Tanda opsional.
Digit Urutan digit mulai dari 0 hingga 9.

Parameter s ditafsirkan menggunakan NumberStyles.Integer gaya . Selain digit desimal nilai byte, hanya spasi di depan dan di belakang dengan tanda positif atau negatif terkemuka yang diizinkan. Untuk secara eksplisit menentukan elemen gaya yang dapat ada di s, gunakan Parse(String, NumberStyles) metode atau Parse(String, NumberStyles, IFormatProvider) .

Parameter s diurai dengan menggunakan informasi pemformatan dalam yang diinisialisasi NumberFormatInfo untuk budaya sistem saat ini. Untuk informasi selengkapnya, lihat NumberFormatInfo.CurrentInfo. Untuk mengurai string dengan menggunakan informasi pemformatan dari beberapa budaya lain, gunakan metode .Parse(String, NumberStyles, IFormatProvider)

Lihat juga

Berlaku untuk

Parse(ReadOnlySpan<Char>, IFormatProvider)

Sumber:
SByte.cs
Sumber:
SByte.cs
Sumber:
SByte.cs

Mengurai rentang karakter ke dalam nilai.

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

Parameter

s
ReadOnlySpan<Char>

Rentang karakter untuk diurai.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang s.

Mengembalikan

Hasil penguraian s.

Penerapan

Berlaku untuk

Parse(ReadOnlySpan<Byte>, IFormatProvider)

Sumber:
SByte.cs
Sumber:
SByte.cs

Menguraikan rentang karakter UTF-8 ke dalam nilai.

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

Parameter

utf8Text
ReadOnlySpan<Byte>

Rentang karakter UTF-8 untuk diurai.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang utf8Text.

Mengembalikan

Hasil penguraian utf8Text.

Penerapan

Berlaku untuk

Parse(String, NumberStyles)

Sumber:
SByte.cs
Sumber:
SByte.cs
Sumber:
SByte.cs

Penting

API ini bukan kompatibel CLS.

Alternatif kompatibel CLS
System.Int16.Parse(String)

Mengonversi representasi string angka dalam gaya tertentu ke bilangan bulat bertanda tangan 8-bit yang setara.

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

Parameter

s
String

String yang berisi angka yang akan dikonversi. String ditafsirkan menggunakan gaya yang ditentukan oleh style.

style
NumberStyles

Kombinasi bitwise dari nilai enumerasi yang menunjukkan elemen gaya yang dapat ada di s. Nilai umum yang akan ditentukan adalah Integer.

Mengembalikan

Bilangan bulat bertanda tangan 8-bit yang setara dengan angka yang ditentukan dalam s.

Atribut

Pengecualian

sadalah null.

s tidak dalam format yang sesuai dengan style.

s mewakili angka yang kurang dari SByte.MinValue atau lebih besar dari SByte.MaxValue.

-atau-

s termasuk bukan nol, digit pecahan.

style bukan nilai NumberStyles .

-atau-

style bukan kombinasi nilai AllowHexSpecifier dan HexNumber .

Contoh

Contoh berikut menguraikan representasi SByte string nilai dengan Parse(String, NumberStyles) metode . Budaya saat ini untuk contohnya adalah 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.

Keterangan

Parameter style menentukan elemen gaya (seperti spasi kosong atau simbol tanda positif atau negatif) yang diizinkan dalam s parameter agar operasi penguraian berhasil. Ini harus berupa kombinasi bendera bit dari NumberStyles enumerasi.

Bergantung pada nilai style, s parameter dapat mencakup elemen berikut:

[ws] [$][sign]digits[.fractional_digits][E[sign]exponential_digits][ws]

Jika style menyertakan NumberStyles.AllowHexSpecifier, s parameter mungkin berisi elemen berikut:

[ws] hexdigits[ws]

Elemen dalam tanda kurung siku ([ dan ]) adalah opsional. Tabel berikut ini menjelaskan setiap elemen.

Elemen Deskripsi
Ws Spasi kosong opsional. Spasi kosong dapat muncul di awal s jika style menyertakan NumberStyles.AllowLeadingWhite bendera, dan dapat muncul di akhir s jika gaya menyertakan NumberStyles.AllowTrailingWhite bendera.
$ Simbol mata uang khusus budaya. Posisinya dalam string didefinisikan oleh NumberFormatInfo.CurrencyPositivePattern properti dari budaya saat ini. Simbol mata uang budaya saat ini dapat muncul jika sstyle menyertakan NumberStyles.AllowCurrencySymbol bendera .
sign Tanda opsional. Tanda dapat muncul di awal s jika style menyertakan NumberStyles.AllowLeadingSign bendera, dan dapat muncul di akhir s jika style menyertakan NumberStyles.AllowTrailingSign bendera. Tanda kurung dapat digunakan s untuk menunjukkan nilai negatif jika style menyertakan NumberStyles.AllowParentheses bendera .
Digit Urutan digit dari 0 hingga 9.
. Simbol titik desimal khusus budaya. Simbol titik desimal budaya saat ini dapat muncul jika sstyle menyertakan NumberStyles.AllowDecimalPoint bendera .
fractional_digits Satu atau beberapa kemunculan digit 0-9 jika style menyertakan NumberStyles.AllowExponent bendera, atau satu atau beberapa kemunculan digit 0 jika tidak. Digit pecahan dapat muncul s hanya jika style menyertakan NumberStyles.AllowDecimalPoint bendera.
E Karakter "e" atau "E", yang menunjukkan bahwa nilai diwakili dalam notasi eksponensial (ilmiah). Parameter s dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera .
exponential_digits Satu atau beberapa kemunculan digit 0-9. Parameter s dapat mewakili angka dalam notasi eksponensial jika style menyertakan NumberStyles.AllowExponent bendera .
hexdigits Urutan digit heksadesimal dari 0 hingga f, atau 0 hingga F.

Catatan

Setiap karakter NUL yang mengakhiri (U+0000) di s diabaikan oleh operasi penguraian, terlepas dari style nilai argumen.

String dengan digit desimal saja (yang sesuai dengan NumberStyles.None gaya) selalu berhasil diurai. Sebagian besar elemen kontrol anggota yang tersisa NumberStyles yang mungkin ada, tetapi tidak diharuskan ada, dalam string input. Tabel berikut menunjukkan bagaimana anggota individu NumberStyles memengaruhi elemen yang mungkin ada di s.

Nilai NumberStyles non-komposit Elemen yang diizinkan dalam s selain digit
NumberStyles.None Digit desimal saja.
NumberStyles.AllowDecimalPoint Titik desimal (.) dan elemen fractional_digits . Namun, jika style tidak menyertakan NumberStyles.AllowExponent bendera, fractional_digits harus terdiri dari hanya satu atau lebih 0 digit; jika tidak, OverflowException akan dilemparkan.
NumberStyles.AllowExponent Karakter "e" atau "E", yang menunjukkan notasi eksponensial, bersama dengan exponential_digits.
NumberStyles.AllowLeadingWhite Elemen ws di awal s.
NumberStyles.AllowTrailingWhite Elemen ws di akhir s.
NumberStyles.AllowLeadingSign Tanda positif sebelum digit.
NumberStyles.AllowTrailingSign Tanda positif setelah digit.
NumberStyles.AllowParentheses Elemen tanda dalam bentuk tanda kurung yang menyertakan nilai numerik.
NumberStyles.AllowThousands Elemen pemisah grup (,). Meskipun pemisah grup dapat muncul di , pemisah harus didahului soleh hanya satu atau lebih 0 digit.
NumberStyles.AllowCurrencySymbol Elemen mata uang ($).

NumberStyles.AllowHexSpecifier Jika bendera digunakan, s harus berupa nilai heksadesimal. Digit heksadesimal yang valid adalah 0-9, a-f, dan A-F. Awalan seperti "0x" tidak didukung dan menyebabkan operasi penguraian gagal. Satu-satunya bendera lain yang dapat digabungkan style yang disertakan adalah NumberStyles.AllowLeadingWhite dan NumberStyles.AllowTrailingWhite. (Enumerasi NumberStyles mencakup gaya angka komposit, NumberStyles.HexNumber, yang mencakup kedua bendera spasi putih.)

Catatan

s Jika parameter adalah representasi string dari angka heksadesimal, parameter tersebut tidak dapat didahului oleh dekorasi apa pun (seperti 0x atau &h) yang membedakannya sebagai angka heksadesimal. Hal ini menyebabkan operasi penguraian melempar pengecualian.

Jika s mewakili angka heksadesimal, Parse(String, NumberStyles) metode ini menafsirkan bit byte urutan tinggi sebagai bit tanda.

Parameter s diurai dengan menggunakan informasi pemformatan dalam objek yang diinisialisasi NumberFormatInfo untuk budaya sistem saat ini. Untuk menggunakan informasi pemformatan dari beberapa budaya lain, panggil Parse(String, NumberStyles, IFormatProvider) kelebihan beban.

Lihat juga

Berlaku untuk