SByte.TryParse Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Konverterar strängrepresentationen av ett tal till dess 8-bitars signerade heltalsekvivalent. En returkod anger om konverteringen lyckades eller misslyckades.
Överlagringar
| Name | Description |
|---|---|
| TryParse(String, IFormatProvider, SByte) |
Försöker parsa en sträng till ett värde. |
| TryParse(ReadOnlySpan<Char>, SByte) |
Försöker konvertera spanrepresentationen av ett tal till dess SByte motsvarighet och returnerar ett värde som anger om konverteringen lyckades. |
| TryParse(String, SByte) |
Försöker konvertera strängrepresentationen av ett tal till dess SByte motsvarighet och returnerar ett värde som anger om konverteringen lyckades. |
| TryParse(ReadOnlySpan<Byte>, IFormatProvider, SByte) |
Försöker parsa ett intervall med UTF-8 tecken till ett värde. |
| TryParse(ReadOnlySpan<Char>, IFormatProvider, SByte) |
Försöker parsa ett teckenintervall till ett värde. |
| TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, SByte) |
Försöker parsa ett intervall med UTF-8 tecken till ett värde. |
| TryParse(ReadOnlySpan<Byte>, SByte) |
Försöker konvertera ett UTF-8-teckensintervall som innehåller strängrepresentationen av ett tal till dess 8-bitars signerade heltalsmotsvarighet. |
| TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, SByte) |
Försöker konvertera spanrepresentationen av ett tal i ett angivet format och kulturspecifikt format till dess SByte motsvarighet och returnerar ett värde som anger om konverteringen lyckades. |
| TryParse(String, NumberStyles, IFormatProvider, SByte) |
Försöker konvertera strängrepresentationen av ett tal i ett angivet format och kulturspecifikt format till dess SByte motsvarighet och returnerar ett värde som anger om konverteringen lyckades. |
TryParse(String, IFormatProvider, SByte)
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
Försöker parsa en sträng till ett värde.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = IParsable<System::SByte>::TryParse;
public static bool TryParse(string? s, IFormatProvider? provider, out sbyte result);
static member TryParse : string * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As SByte) As Boolean
Parametrar
- s
- String
Strängen som ska parsas.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.
- result
- SByte
När den här metoden returneras innehåller resultatet av parsning s eller ett odefinierat värde vid fel.
Returer
trueom s har parsats, annars . false
Gäller för
TryParse(ReadOnlySpan<Char>, SByte)
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
Viktigt!
Detta API uppfyller inte CLS.
Försöker konvertera spanrepresentationen av ett tal till dess SByte motsvarighet och returnerar ett värde som anger om konverteringen lyckades.
public:
static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] System::SByte % result);
public static bool TryParse(ReadOnlySpan<char> s, out sbyte result);
[System.CLSCompliant(false)]
public static bool TryParse(ReadOnlySpan<char> s, out sbyte result);
static member TryParse : ReadOnlySpan<char> * sbyte -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * sbyte -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As SByte) As Boolean
Parametrar
- s
- ReadOnlySpan<Char>
Ett intervall som innehåller de tecken som representerar talet som ska konverteras.
- result
- SByte
När den här metoden returneras innehåller det 8-bitars signerade heltalsvärdet som motsvarar talet som finns i s om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är null eller Empty, inte har rätt format eller representerar ett tal som är mindre än SByte.MinValue eller större än SByte.MaxValue. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i result skrivs över.
Returer
true om s har konverterats, annars false.
- Attribut
Gäller för
TryParse(String, SByte)
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
Viktigt!
Detta API uppfyller inte CLS.
Försöker konvertera strängrepresentationen av ett tal till dess SByte motsvarighet och returnerar ett värde som anger om konverteringen lyckades.
public:
static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] System::SByte % result);
[System.CLSCompliant(false)]
public static bool TryParse(string s, out sbyte result);
public static bool TryParse(string? s, out sbyte result);
[System.CLSCompliant(false)]
public static bool TryParse(string? s, out sbyte result);
[<System.CLSCompliant(false)>]
static member TryParse : string * sbyte -> bool
static member TryParse : string * sbyte -> bool
Public Shared Function TryParse (s As String, ByRef result As SByte) As Boolean
Parametrar
- s
- String
En sträng som innehåller ett tal som ska konverteras.
- result
- SByte
När den här metoden returneras innehåller det 8-bitars signerade heltalsvärdet som motsvarar talet som finns i s om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är null eller Empty, inte har rätt format eller representerar ett tal som är mindre än SByte.MinValue eller större än SByte.MaxValue. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i result skrivs över.
Returer
true om s har konverterats, annars false.
- Attribut
Exempel
I följande exempel försöker konvertera strängarna i en matris till värden genom att SByte anropa TryParse(String, SByte) metoden.
string[] numericStrings = {"-3.6", "12.8", "+16.7", " 3 ", "(17)",
"-17", "+12", "18-", "987", "1,024", " 127 "};
sbyte number;
foreach (string numericString in numericStrings)
{
if (sbyte.TryParse(numericString, out number))
Console.WriteLine("Converted '{0}' to {1}.", numericString, number);
else
Console.WriteLine("Cannot convert '{0}' to an SByte.", numericString);
}
// The example displays the following output to the console:
// Cannot convert '-3.6' to an SByte.
// Cannot convert '12.8' to an SByte.
// Cannot convert '+16.7' to an SByte.
// Converted ' 3 ' to 3.
// Cannot convert '(17)' to an SByte.
// Converted '-17' to -17.
// Converted '+12' to 12.
// Cannot convert '18-' to an SByte.
// Cannot convert '987' to an SByte.
// Cannot convert '1,024' to an SByte.
// Converted ' 127 ' to 127.
open System
let numericStrings =
[| "-3.6"; "12.8"; "+16.7"; " 3 "; "(17)"
"-17"; "+12"; "18-"; "987"; "1,024"; " 127 " |]
for numericString in numericStrings do
match SByte.TryParse numericString with
| true, number ->
printfn $"Converted '{numericString}' to {number}."
| _ ->
printfn $"Cannot convert '{numericString}' to an SByte."
// The example displays the following output to the console:
// Cannot convert '-3.6' to an SByte.
// Cannot convert '12.8' to an SByte.
// Cannot convert '+16.7' to an SByte.
// Converted ' 3 ' to 3.
// Cannot convert '(17)' to an SByte.
// Converted '-17' to -17.
// Converted '+12' to 12.
// Cannot convert '18-' to an SByte.
// Cannot convert '987' to an SByte.
// Cannot convert '1,024' to an SByte.
// Converted ' 127 ' to 127.
Dim numericStrings() As String = {"-3.6", "12.8", "+16.7", " 3 ", _
"(17)", "-17", "+12", "18-", "987", _
"1,024", " 127 "}
Dim number As SByte
For Each numericString As String In numericStrings
If SByte.TryParse(numericString, number) Then
Console.WriteLine("Converted '{0}' to {1}.", numericString, number)
Else
Console.WriteLine("Cannot convert '{0}' to an SByte.", numericString)
End If
Next
' The example displays the following output to the console:
' Cannot convert '-3.6' to an SByte.
' Cannot convert '12.8' to an SByte.
' Cannot convert '+16.7' to an SByte.
' Converted ' 3 ' to 3.
' Cannot convert '(17)' to an SByte.
' Converted '-17' to -17.
' Converted '+12' to 12.
' Cannot convert '18-' to an SByte.
' Cannot convert '987' to an SByte.
' Cannot convert '1,024' to an SByte.
' Converted ' 127 ' to 127.
Kommentarer
Metoden SByte.TryParse(String, SByte) liknar SByte.Parse(String) metoden, förutom att den inte utlöser ett undantag om konverteringen misslyckas. Den här metoden eliminerar behovet av att använda undantagshantering för att testa för en FormatException om value är ogiltig och kan inte parsas.
Parametern s ska vara strängrepresentationen av ett decimaltal i följande formulär:
[ws][sign]digits[ws]
Element inom hakparenteser ([ och ]) är valfria. I följande tabell beskrivs varje element.
| Element | Description |
|---|---|
| Ws | Valfritt blanksteg. |
| signera | Ett valfritt tecken. Giltiga teckentecken bestäms av NumberFormatInfo.NegativeSign egenskaperna och NumberFormatInfo.PositiveSign för den aktuella kulturen. |
| Siffror | En sekvens med decimalsiffror från 0 till 9. |
Note
Strängen som anges av parametern value får inte innehålla några gruppavgränsare eller decimaltecken, och den får inte ha en decimaldel.
Parametern s tolkas med hjälp NumberStyles.Integer av formatet . Förutom decimaltalen tillåts endast inledande och avslutande blanksteg med ett inledande tecken. Om du uttryckligen vill definiera formatelementen med den kulturspecifika formateringsinformation som kan finnas i valueanropar TryParse(String, NumberStyles, IFormatProvider, SByte) du metoden.
Parametern s parsas med hjälp av formateringsinformationen i ett NumberFormatInfo objekt för den aktuella kulturen. Mer information finns i NumberFormatInfo.CurrentInfo.
Den här överlagringen tolkar alla siffror i parametern value som decimalsiffror. Om du vill parsa strängrepresentationen av ett hexadecimalt nummer anropar du överlagringen TryParse(String, NumberStyles, IFormatProvider, SByte) i stället.
Se även
- Exempel: Formateringsverktyget för .NET Core WinForms (C#)
- Exempel: Formateringsverktyget för .NET Core WinForms (Visual Basic)
Gäller för
TryParse(ReadOnlySpan<Byte>, IFormatProvider, SByte)
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
Försöker parsa ett intervall med UTF-8 tecken till ett värde.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = IUtf8SpanParsable<System::SByte>::TryParse;
public static bool TryParse(ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out sbyte result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As SByte) As Boolean
Parametrar
- utf8Text
- ReadOnlySpan<Byte>
Intervallet för UTF-8 tecken att parsa.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om utf8Text.
- result
- SByte
Vid retur innehåller resultatet av parsning utf8Text eller ett odefinierat värde vid fel.
Returer
trueom utf8Text har parsats, annars . false
Gäller för
TryParse(ReadOnlySpan<Char>, IFormatProvider, SByte)
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
Försöker parsa ett teckenintervall till ett värde.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = ISpanParsable<System::SByte>::TryParse;
public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out sbyte result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As SByte) As Boolean
Parametrar
- s
- ReadOnlySpan<Char>
Det intervall med tecken som ska parsas.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.
- result
- SByte
När den här metoden returneras innehåller resultatet av parsning seller ett odefinierat värde vid fel.
Returer
trueom s har parsats, annars . false
Gäller för
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, SByte)
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
Försöker parsa ett intervall med UTF-8 tecken till ett värde.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = System::Numerics::INumberBase<System::SByte>::TryParse;
public static bool TryParse(ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out sbyte result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As SByte) As Boolean
Parametrar
- utf8Text
- ReadOnlySpan<Byte>
Intervallet för UTF-8 tecken att parsa.
- style
- NumberStyles
En bitvis kombination av talformat som kan finnas i utf8Text.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om utf8Text.
- result
- SByte
Vid retur innehåller resultatet av parsning utf8Text eller ett odefinierat värde vid fel.
Returer
trueom utf8Text har parsats, annars . false
Gäller för
TryParse(ReadOnlySpan<Byte>, SByte)
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
Försöker konvertera ett UTF-8-teckensintervall som innehåller strängrepresentationen av ett tal till dess 8-bitars signerade heltalsmotsvarighet.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] System::SByte % result);
public static bool TryParse(ReadOnlySpan<byte> utf8Text, out sbyte result);
static member TryParse : ReadOnlySpan<byte> * sbyte -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As SByte) As Boolean
Parametrar
- utf8Text
- ReadOnlySpan<Byte>
Ett intervall som innehåller UTF-8 tecken som representerar talet som ska konverteras.
- result
- SByte
När den här metoden returnerar innehåller det 8-bitars signerade heltalsvärdet som motsvarar talet i utf8Text om konverteringen lyckades eller noll om konverteringen misslyckades. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i resultatet skrivs över.
Returer
true om utf8Text har konverterats, annars false.
Gäller för
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, SByte)
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
Viktigt!
Detta API uppfyller inte CLS.
Försöker konvertera spanrepresentationen av ett tal i ett angivet format och kulturspecifikt format till dess SByte motsvarighet och returnerar ett värde som anger om konverteringen lyckades.
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = System::Numerics::INumberBase<System::SByte>::TryParse;
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result);
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out sbyte result);
[System.CLSCompliant(false)]
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out sbyte result);
[System.CLSCompliant(false)]
public static bool TryParse(ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out sbyte result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * sbyte -> bool
[<System.CLSCompliant(false)>]
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As SByte) As Boolean
Parametrar
- s
- ReadOnlySpan<Char>
Ett intervall som innehåller de tecken som representerar talet som ska konverteras.
- style
- NumberStyles
En bitvis kombination av uppräkningsvärden som anger det tillåtna formatet för s. Ett typiskt värde att ange är Integer.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.
- result
- SByte
När den här metoden returnerar innehåller det 8-bitars signerade heltalsvärdet som motsvarar talet i s, om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är null eller Empty, inte är i ett format som är kompatibelt med styleeller representerar ett tal som är mindre än SByte.MinValue eller större än SByte.MaxValue. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i result skrivs över.
Returer
true om s har konverterats, annars false.
- Attribut
Gäller för
TryParse(String, NumberStyles, IFormatProvider, SByte)
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
- Källa:
- SByte.cs
Viktigt!
Detta API uppfyller inte CLS.
- Alternativ som uppfyller CLS
- System.Int16.TryParse(String, Int16)
Försöker konvertera strängrepresentationen av ett tal i ett angivet format och kulturspecifikt format till dess SByte motsvarighet och returnerar ett värde som anger om konverteringen lyckades.
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result);
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] System::SByte % result) = System::Numerics::INumberBase<System::SByte>::TryParse;
[System.CLSCompliant(false)]
public static bool TryParse(string s, System.Globalization.NumberStyles style, IFormatProvider provider, out sbyte result);
public static bool TryParse(string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out sbyte result);
[System.CLSCompliant(false)]
public static bool TryParse(string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out sbyte result);
[<System.CLSCompliant(false)>]
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * sbyte -> bool
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * sbyte -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As SByte) As Boolean
Parametrar
- s
- String
En sträng som representerar ett tal som ska konverteras.
- style
- NumberStyles
En bitvis kombination av uppräkningsvärden som anger det tillåtna formatet för s. Ett typiskt värde att ange är Integer.
- provider
- IFormatProvider
Ett objekt som tillhandahåller kulturspecifik formateringsinformation om s.
- result
- SByte
När den här metoden returnerar innehåller det 8-bitars signerade heltalsvärdet som motsvarar talet i s, om konverteringen lyckades eller noll om konverteringen misslyckades. Konverteringen misslyckas om parametern s är null eller Empty, inte är i ett format som är kompatibelt med styleeller representerar ett tal som är mindre än SByte.MinValue eller större än SByte.MaxValue. Den här parametern skickas onitialiserad; alla värden som ursprungligen angavs i result skrivs över.
Returer
true om s har konverterats, annars false.
- Attribut
Undantag
style är inte ett NumberStyles värde.
-eller-
style är inte en kombination av AllowHexSpecifier och HexNumber värden.
Exempel
I följande exempel anropas TryParse(String, NumberStyles, IFormatProvider, SByte) metoden med ett antal olika strängar och NumberStyles värden.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
string numericString;
NumberStyles styles;
numericString = "106";
styles = NumberStyles.Integer;
CallTryParse(numericString, styles);
numericString = "-106";
styles = NumberStyles.None;
CallTryParse(numericString, styles);
numericString = "103.00";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "103.72";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "10E-01";
styles = NumberStyles.Integer | NumberStyles.AllowExponent;
CallTryParse(numericString, styles);
numericString = "12E-01";
CallTryParse(numericString, styles);
numericString = "12E01";
CallTryParse(numericString, styles);
numericString = "C8";
CallTryParse(numericString, NumberStyles.HexNumber);
numericString = "0x8C";
CallTryParse(numericString, NumberStyles.HexNumber);
}
private static void CallTryParse(string stringToConvert, NumberStyles styles)
{
sbyte number;
bool result = SByte.TryParse(stringToConvert, styles,
CultureInfo.InvariantCulture, out number);
if (result)
Console.WriteLine($"Converted '{stringToConvert}' to {number}.");
else
Console.WriteLine($"Attempted conversion of '{stringToConvert}' failed.");
}
}
// The example displays the following output:
// Converted '106' to 106.
// Attempted conversion of '-106' failed.
// Converted '103.00' to 103.
// Attempted conversion of '103.72' failed.
// Converted '10E-01' to 1.
// Attempted conversion of '12E-01' failed.
// Converted '12E01' to 120.
// Converted 'C8' to -56.
// Attempted conversion of '0x8C' failed.
open System
open System.Globalization
let callTryParse (stringToConvert: string) styles =
match SByte.TryParse(stringToConvert, styles, CultureInfo.InvariantCulture) with
| true, number ->
printfn $"Converted '{stringToConvert}' to {number}."
| _ ->
printfn $"Attempted conversion of '{stringToConvert}' failed."
[<EntryPoint>]
let main _ =
let numericString = "106"
let styles = NumberStyles.Integer
callTryParse numericString styles
let numericString = "-106"
let styles = NumberStyles.None
callTryParse numericString styles
let numericString = "103.00"
let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
callTryParse numericString styles
let numericString = "103.72"
let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
callTryParse numericString styles
let numericString = "10E-01"
let styles = NumberStyles.Integer ||| NumberStyles.AllowExponent
callTryParse numericString styles
let numericString = "12E-01"
callTryParse numericString styles
let numericString = "12E01"
callTryParse numericString styles
let numericString = "C8"
callTryParse numericString NumberStyles.HexNumber
let numericString = "0x8C"
callTryParse numericString NumberStyles.HexNumber
0
// The example displays the following output:
// Converted '106' to 106.
// Attempted conversion of '-106' failed.
// Converted '103.00' to 103.
// Attempted conversion of '103.72' failed.
// Converted '10E-01' to 1.
// Attempted conversion of '12E-01' failed.
// Converted '12E01' to 120.
// Converted 'C8' to -56.
// Attempted conversion of '0x8C' failed.
Imports System.Globalization
Module StringParsing
Public Sub Main()
Dim numericString As String
Dim styles As NumberStyles
numericString = "106"
styles = NumberStyles.Integer
CallTryParse(numericString, styles)
numericString = "-106"
styles = NumberStyles.None
CallTryParse(numericString, styles)
numericString = "103.00"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "103.72"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "10E-01"
styles = NumberStyles.Integer Or NumberStyles.AllowExponent
CallTryParse(numericString, styles)
numericString = "12E-01"
CallTryParse(numericString, styles)
numericString = "12E01"
CallTryParse(numericString, styles)
numericString = "C8"
CallTryParse(numericString, NumberStyles.HexNumber)
numericString = "0x8C"
CallTryParse(numericString, NumberStyles.HexNumber)
End Sub
Private Sub CallTryParse(stringToConvert As String, styles AS NumberStyles)
Dim number As SByte
Dim result As Boolean = SByte.TryParse(stringToConvert, styles, _
CultureInfo.InvariantCulture, 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 '106' to 106.
' Attempted conversion of '-106' failed.
' Converted '103.00' to 103.
' Attempted conversion of '103.72' failed.
' Converted '10E-01' to 1.
' Attempted conversion of '12E-01' failed.
' Converted '12E01' to 120.
' Converted 'C8' to -56.
' Attempted conversion of '0x8C' failed.
Kommentarer
Metoden TryParse(String, NumberStyles, IFormatProvider, SByte) liknar Parse(String, NumberStyles, IFormatProvider) metoden, förutom att den inte utlöser ett undantag om konverteringen misslyckas. Den här metoden eliminerar behovet av att använda undantagshantering för att testa för en FormatException om value är ogiltig och kan inte parsas korrekt.
Parametern style definierar formatelementen (till exempel tomt utrymme eller ett positivt eller negativt tecken) som tillåts i parametern value för att parsningsåtgärden ska lyckas. Det måste vara en kombination av bitflaggor från NumberStyles uppräkningen. Beroende på värdet för stylekan parametern value innehålla följande element:
[ws][$][sign][digits,]digits[.fractional_digits][E[sign]exponential_digits][ws]
Om parametern style innehåller AllowHexSpecifierkan parametern value innehålla följande element:
[ws]hexdigits[ws]
Element inom hakparenteser ([ och ]) är valfria. I följande tabell beskrivs varje element.
| Element | Description |
|---|---|
| Ws | Valfritt blanksteg. Tomt utrymme kan visas i början av value om style innehåller NumberStyles.AllowLeadingWhite flaggan, eller i slutet av value om style innehåller NumberStyles.AllowTrailingWhite flaggan. |
| $ | En kulturspecifik valutasymbol. Dess position i strängen definieras av CurrencyPositivePattern egenskapen för objektet NumberFormatInfo som returneras av GetFormat parametermetoden provider . Valutasymbolen kan visas i value om style den NumberStyles.AllowCurrencySymbol innehåller flaggan. |
| signera | Ett valfritt tecken. Tecknet kan visas i början av value om style innehåller NumberStyles.AllowLeadingSign flaggan, och det kan visas i slutet av value om style innehåller NumberStyles.AllowTrailingSign flaggan. Parenteser kan användas i value för att ange ett negativt värde om style den NumberStyles.AllowParentheses innehåller flaggan. |
| Siffror | En sekvens med siffror från 0 till 9. |
| , | En kulturspecifik gruppavgränsare. Gruppavgränsaren för kulturen som anges av provider kan visas i value om style den NumberStyles.AllowThousands innehåller flaggan. |
| . | Ett kulturspecifikt decimaltecken. Decimaltecknet för kulturen som anges av provider kan visas i value om style den NumberStyles.AllowDecimalPoint innehåller flaggan. |
| fractional_digits | En eller flera förekomster av siffran 0. Bråksiffror kan bara visas i value om style den NumberStyles.AllowDecimalPoint innehåller flaggan. |
| E | Tecknet "e" eller "E", som anger att värdet representeras i exponentiell (vetenskaplig) notation. Parametern value kan representera ett tal i exponentiell notation om style den NumberStyles.AllowExponent innehåller flaggan. |
| exponential_digits | En sekvens med siffror från 0 till 9. Parametern value kan representera ett tal i exponentiell notation om style den NumberStyles.AllowExponent innehåller flaggan. |
| hexdigits | En sekvens med hexadecimala siffror från 0 till f eller 0 till och med F. |
Note
Alla avslutande NUL-tecken (U+0000) i s ignoreras av parsningsåtgärden, oavsett argumentets style värde.
En sträng med endast decimalsiffror (vilket motsvarar NumberStyles.None flaggan) parsar alltid korrekt. De flesta av de återstående NumberStyles medlemmarna styr element som kan finnas, men som inte måste finnas i den här indatasträngen. Följande tabell visar hur enskilda NumberStyles medlemmar påverkar de element som kan finnas i value.
Icke-sammansatta NumberStyles värden |
Element som tillåts i värde utöver siffror |
|---|---|
| None | Endast decimalsiffror. |
| AllowDecimalPoint | Decimaltecknet (.) och fractional_digits element. Men fractional_digits får bara bestå av en eller flera 0 siffror, eller så returnerar falsemetoden . |
| AllowExponent | Tecknet "e" eller "E", som anger exponentiell notation, tillsammans med exponential_digits. Om value representerar ett tal i exponentiell notation får det inte ha en icke-noll, bråkkomponent. |
| AllowLeadingWhite |
WS-elementet i början av value. |
| AllowTrailingWhite |
WS-elementet i slutet av value. |
| AllowLeadingSign | Teckenelementet före siffror. |
| AllowTrailingSign | Teckenelementet efter siffror. |
| AllowParentheses | Teckenelementet i form av parenteser som omger det numeriska värdet. |
| AllowThousands | Gruppavgränsaren (,). |
| AllowCurrencySymbol | Valutaelementet ($). |
| Currency | Alla element. Kan dock value inte representera ett hexadecimalt tal eller ett tal i exponentiell notation. |
| Float |
WS-elementet i början eller slutet av value, signerar i början av valueoch decimaltecknet (.). Parametern value kan också använda exponentiell notation. |
| Number | Elementen ws, sign, group separator (,) och decimaltecknet (.). |
| Any | Alla element. Kan dock value inte representera ett hexadecimalt tal. |
NumberStyles.AllowHexSpecifier Om flaggan används value måste vara ett hexadecimalt värde. Giltiga hexadecimala siffror är 0–9, a-f och A-F. De enda andra flaggorna som kan finnas i style är NumberStyles.AllowLeadingWhite och NumberStyles.AllowTrailingWhite. (Uppräkningen NumberStyles har ett sammansatt format, HexNumber, som innehåller båda blankstegsflaggorna.)
Note
Om value är strängrepresentationen av ett hexadecimalt tal kan det inte föregås av någon dekoration (till exempel 0x eller &h) som särskiljer det som ett hexadecimalt tal. Detta gör att konverteringen misslyckas.
Parametern provider är en IFormatProvider implementering. Dess GetFormat metod returnerar ett NumberFormatInfo objekt som ger kulturspecifik information om formatet valueför . Parametern provider kan vara något av följande:
Ett CultureInfo objekt som representerar kulturen som tillhandahåller formateringsinformation. Dess GetFormat metod returnerar det NumberFormatInfo objekt som innehåller numerisk formateringsinformation för den kulturen.
Ett NumberFormatInfo objekt som innehåller numerisk formateringsinformation. (Dess implementering av GetFormat just returnerar sig själv.)
Ett anpassat objekt som implementerar IFormatProvider. Metoden GetFormat instansierar och returnerar objektet NumberFormatInfo som tillhandahåller formateringsinformation.
Om provider är nullNumberFormatInfo används objektet för den aktuella kulturen.