SByte.TryParse Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Konvertiert die Zeichenfolgendarstellung einer Zahl in die 8-Bit-ganzzahlige Entsprechung mit Vorzeichen. Ein Rückgabecode gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.
Überlädt
TryParse(ReadOnlySpan<Byte>, IFormatProvider, SByte) |
Versucht, eine Spanne von UTF-8 Zeichen in einen Wert zu analysieren. |
TryParse(ReadOnlySpan<Char>, SByte) |
Versucht, die Span-Darstellung einer Zahl in die SByte Entsprechung zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war. |
TryParse(String, SByte) |
Versucht, die Zeichenfolgendarstellung einer Zahl in die entsprechende SByte zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, SByte) |
Versucht, einen Bereich von Zeichen in einen Wert zu analysieren. |
TryParse(String, IFormatProvider, SByte) |
Versucht, eine Zeichenfolge in einen Wert zu analysieren. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, SByte) |
Versucht, eine Spanne von UTF-8 Zeichen in einen Wert zu analysieren. |
TryParse(ReadOnlySpan<Byte>, SByte) |
Versucht, einen UTF-8-Zeichenbereich zu konvertieren, der die Zeichenfolgendarstellung einer Zahl in dessen 8-Bit-Ganzzahläquivalent enthält. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, SByte) |
Versucht, die Spandarstellung einer Zahl in einem angegebenen Format und kulturspezifischen Format in dessen SByte Äquivalent zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war. |
TryParse(String, NumberStyles, IFormatProvider, SByte) |
Versucht, die Zeichenfolgendarstellung einer Zahl in einem angegebenen Format und kulturspezifischen Format in das SByte Äquivalent zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, SByte)
- Quelle:
- SByte.cs
- Quelle:
- SByte.cs
Versucht, eine Spanne von UTF-8 Zeichen in einen Wert zu analysieren.
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
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Die Spanne von UTF-8 Zeichen, die analysiert werden sollen.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu utf8Text
bereitstellt.
- result
- SByte
Enthält das Ergebnis der erfolgreichen Analyse utf8Text
oder eines nicht definierten Werts für fehler.
Gibt zurück
true
, wenn utf8Text
erfolgreich analysiert wurde; andernfalls false
.
Gilt für:
TryParse(ReadOnlySpan<Char>, SByte)
- Quelle:
- SByte.cs
- Quelle:
- SByte.cs
- Quelle:
- SByte.cs
Wichtig
Diese API ist nicht CLS-kompatibel.
Versucht, die Span-Darstellung einer Zahl in die SByte Entsprechung zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.
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
Parameter
- s
- ReadOnlySpan<Char>
Eine Spanne mit den Zeichen, die die zu konvertierende Zahl darstellen.
- result
- SByte
Wenn diese Methode zurückgegeben wird, enthält sie den 8-Bit-Ganzzahlwert mit Vorzeichen, der der zahl entspricht, die in s
enthalten ist, wenn die Konvertierung erfolgreich war, oder null, wenn die Konvertierung fehlgeschlagen ist. Die Konvertierung schlägt fehl, wenn der parameter s
null
oder Emptyist, nicht im richtigen Format ist oder eine Zahl darstellt, die kleiner als SByte.MinValue oder größer als SByte.MaxValueist. Dieser Parameter wird nicht initialisiert übergeben. alle ursprünglich in result
angegebenen Werte werden überschrieben.
Gibt zurück
true
, wenn s
erfolgreich konvertiert wurde; andernfalls false
.
- Attribute
Gilt für:
TryParse(String, SByte)
- Quelle:
- SByte.cs
- Quelle:
- SByte.cs
- Quelle:
- SByte.cs
Wichtig
Diese API ist nicht CLS-kompatibel.
Versucht, die Zeichenfolgendarstellung einer Zahl in die entsprechende SByte zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.
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
Parameter
- s
- String
Eine Zeichenfolge, die eine zahl enthält, die konvertiert werden soll.
- result
- SByte
Wenn diese Methode zurückgegeben wird, enthält sie den 8-Bit-Ganzzahlwert mit Vorzeichen, der der zahl entspricht, die in s
enthalten ist, wenn die Konvertierung erfolgreich war, oder null, wenn die Konvertierung fehlgeschlagen ist. Die Konvertierung schlägt fehl, wenn der parameter s
null
oder Emptyist, nicht im richtigen Format ist oder eine Zahl darstellt, die kleiner als SByte.MinValue oder größer als SByte.MaxValueist. Dieser Parameter wird nicht initialisiert übergeben. alle ursprünglich in result
angegebenen Werte werden überschrieben.
Gibt zurück
true
, wenn s
erfolgreich konvertiert wurde; andernfalls false
.
- Attribute
Beispiele
Im folgenden Beispiel wird versucht, die Zeichenfolgen in einem Array in SByte Werte zu konvertieren, indem die TryParse(String, SByte)-Methode aufgerufen wird.
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.
Hinweise
Die SByte.TryParse(String, SByte)-Methode ähnelt der SByte.Parse(String)-Methode, mit der Ausnahme, dass keine Ausnahme ausgelöst wird, wenn die Konvertierung fehlschlägt. Diese Methode beseitigt die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um eine FormatException zu testen, wenn value
ungültig ist und nicht erfolgreich analysiert werden kann.
Der parameter s
sollte die Zeichenfolgendarstellung einer Dezimalzahl in der folgenden Form sein:
[ws] [Zeichen]Ziffern[ws]
Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle werden die einzelnen Elemente beschrieben.
Element | Beschreibung |
---|---|
ws | Optionaler Leerraum. |
signieren | Ein optionales Zeichen. Gültige Zeichenzeichen werden durch die eigenschaften NumberFormatInfo.NegativeSign und NumberFormatInfo.PositiveSign der aktuellen Kultur bestimmt. |
Ziffern | Eine Sequenz von Dezimalziffern zwischen 0 und 9. |
Anmerkung
Die durch den parameter value
angegebene Zeichenfolge darf keine Gruppentrennzeichen oder Dezimaltrennzeichen enthalten, und es kann kein Dezimalteil vorhanden sein.
Der s
-Parameter wird mithilfe der NumberStyles.Integer-Formatvorlage interpretiert. Zusätzlich zu den Dezimalziffern sind nur führende und nachfolgende Leerzeichen mit einem vorangestellten Zeichen zulässig. Um die Formatvorlagenelemente explizit mit den kulturspezifischen Formatierungsinformationen zu definieren, die in value
vorhanden sein können, rufen Sie die TryParse(String, NumberStyles, IFormatProvider, SByte)-Methode auf.
Der s
-Parameter wird mithilfe der Formatierungsinformationen in einem NumberFormatInfo-Objekt für die aktuelle Kultur analysiert. Weitere Informationen finden Sie unter NumberFormatInfo.CurrentInfo.
Diese Überladung interpretiert alle Ziffern im value
Parameter als Dezimalziffern. Um die Zeichenfolgendarstellung einer Hexadezimalzahl zu analysieren, rufen Sie stattdessen die TryParse(String, NumberStyles, IFormatProvider, SByte) Überladung auf.
Weitere Informationen
- Beispiel: .NET Core WinForms Formatting Utility (C#)
- Beispiel: .NET Core WinForms Formatting Utility (Visual Basic)
Gilt für:
TryParse(ReadOnlySpan<Char>, IFormatProvider, SByte)
- Quelle:
- SByte.cs
- Quelle:
- SByte.cs
- Quelle:
- SByte.cs
Versucht, einen Bereich von Zeichen in einen Wert zu analysieren.
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
Parameter
- s
- ReadOnlySpan<Char>
Die Spanne der zu analysierenden Zeichen.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu s
bereitstellt.
- result
- SByte
Wenn diese Methode zurückgegeben wird, enthält das Ergebnis der erfolgreichen Analyse s
oder eines nicht definierten Werts für fehler.
Gibt zurück
true
, wenn s
erfolgreich analysiert wurde; andernfalls false
.
Gilt für:
TryParse(String, IFormatProvider, SByte)
- Quelle:
- SByte.cs
- Quelle:
- SByte.cs
- Quelle:
- SByte.cs
Versucht, eine Zeichenfolge in einen Wert zu analysieren.
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
Parameter
- s
- String
Die zu analysierende Zeichenfolge.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu s
bereitstellt.
- result
- SByte
Wenn diese Methode zurückgegeben wird, enthält das Ergebnis der erfolgreichen Analyse s
oder eines nicht definierten Werts für fehler.
Gibt zurück
true
, wenn s
erfolgreich analysiert wurde; andernfalls false
.
Gilt für:
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, SByte)
- Quelle:
- SByte.cs
- Quelle:
- SByte.cs
Versucht, eine Spanne von UTF-8 Zeichen in einen Wert zu analysieren.
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
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Die Spanne von UTF-8 Zeichen, die analysiert werden sollen.
- style
- NumberStyles
Eine bitweise Kombination aus Zahlenformatvorlagen, die in utf8Text
vorhanden sein können.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu utf8Text
bereitstellt.
- result
- SByte
Enthält das Ergebnis der erfolgreichen Analyse utf8Text
oder eines nicht definierten Werts für fehler.
Gibt zurück
true
, wenn utf8Text
erfolgreich analysiert wurde; andernfalls false
.
Gilt für:
TryParse(ReadOnlySpan<Byte>, SByte)
- Quelle:
- SByte.cs
- Quelle:
- SByte.cs
Versucht, einen UTF-8-Zeichenbereich zu konvertieren, der die Zeichenfolgendarstellung einer Zahl in dessen 8-Bit-Ganzzahläquivalent enthält.
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
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Eine Spanne mit den UTF-8-Zeichen, die die zu konvertierende Zahl darstellen.
- result
- SByte
Wenn diese Methode zurückgegeben wird, enthält sie den 8-Bit-ganzzahligen Wert, der der zahl entspricht, die in utf8Text
enthalten ist, wenn die Konvertierung erfolgreich war, oder null, wenn die Konvertierung fehlgeschlagen ist. Dieser Parameter wird nicht initialisiert übergeben. alle ursprünglich im Ergebnis angegebenen Werte werden überschrieben.
Gibt zurück
true
, wenn utf8Text
erfolgreich konvertiert wurde; andernfalls false
.
Gilt für:
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, SByte)
- Quelle:
- SByte.cs
- Quelle:
- SByte.cs
- Quelle:
- SByte.cs
Wichtig
Diese API ist nicht CLS-kompatibel.
Versucht, die Spandarstellung einer Zahl in einem angegebenen Format und kulturspezifischen Format in dessen SByte Äquivalent zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.
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, [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, 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
Parameter
- s
- ReadOnlySpan<Char>
Eine Spanne mit den Zeichen, die die zu konvertierende Zahl darstellen.
- style
- NumberStyles
Eine bitweise Kombination von Enumerationswerten, die das zulässige Format von s
angibt. Ein typischer Wert, der angegeben werden soll, ist Integer.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu s
bereitstellt.
- result
- SByte
Wenn diese Methode zurückgegeben wird, enthält sie den 8-Bit-ganzzahligen Wert, der der in s
enthaltenen Zahl entspricht, wenn die Konvertierung erfolgreich war, oder null, wenn die Konvertierung fehlgeschlagen ist. Die Konvertierung schlägt fehl, wenn der s
-Parameter null
oder Emptyist, nicht in einem Format vorhanden ist, das mit style
kompatibel ist, oder eine Zahl kleiner als SByte.MinValue oder größer als SByte.MaxValuedarstellt. Dieser Parameter wird nicht initialisiert übergeben. alle ursprünglich in result
angegebenen Werte werden überschrieben.
Gibt zurück
true
, wenn s
erfolgreich konvertiert wurde; andernfalls false
.
- Attribute
Gilt für:
TryParse(String, NumberStyles, IFormatProvider, SByte)
- Quelle:
- SByte.cs
- Quelle:
- SByte.cs
- Quelle:
- SByte.cs
Wichtig
Diese API ist nicht CLS-kompatibel.
- CLS-kompatible Alternative
- System.Int16.TryParse(String, Int16)
Versucht, die Zeichenfolgendarstellung einer Zahl in einem angegebenen Format und kulturspezifischen Format in das SByte Äquivalent zu konvertieren, und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.
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
Parameter
- s
- String
Eine Zeichenfolge, die eine zahl darstellt, die konvertiert werden soll.
- style
- NumberStyles
Eine bitweise Kombination von Enumerationswerten, die das zulässige Format von s
angibt. Ein typischer Wert, der angegeben werden soll, ist Integer.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu s
bereitstellt.
- result
- SByte
Wenn diese Methode zurückgegeben wird, enthält sie den 8-Bit-ganzzahligen Wert, der der in s
enthaltenen Zahl entspricht, wenn die Konvertierung erfolgreich war, oder null, wenn die Konvertierung fehlgeschlagen ist. Die Konvertierung schlägt fehl, wenn der s
-Parameter null
oder Emptyist, nicht in einem Format vorhanden ist, das mit style
kompatibel ist, oder eine Zahl kleiner als SByte.MinValue oder größer als SByte.MaxValuedarstellt. Dieser Parameter wird nicht initialisiert übergeben. alle ursprünglich in result
angegebenen Werte werden überschrieben.
Gibt zurück
true
, wenn s
erfolgreich konvertiert wurde; andernfalls false
.
- Attribute
Ausnahmen
style
ist kein NumberStyles Wert.
-oder-
style
ist keine Kombination aus AllowHexSpecifier und HexNumber Werten.
Beispiele
Im folgenden Beispiel wird die TryParse(String, NumberStyles, IFormatProvider, SByte)-Methode mit einer Reihe unterschiedlicher Zeichenfolgen- und NumberStyles Werte aufgerufen.
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.
Hinweise
Die TryParse(String, NumberStyles, IFormatProvider, SByte)-Methode ähnelt der Parse(String, NumberStyles, IFormatProvider)-Methode, mit der Ausnahme, dass keine Ausnahme ausgelöst wird, wenn die Konvertierung fehlschlägt. Diese Methode beseitigt die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um eine FormatException zu testen, wenn value
ungültig ist und nicht erfolgreich analysiert werden kann.
Der style
-Parameter definiert die Formatvorlagenelemente (z. B. Leerzeichen oder ein positives oder negatives Vorzeichen), die im value
-Parameter zulässig sind, damit der Analysevorgang erfolgreich ausgeführt werden kann. Es muss sich um eine Kombination aus Bitkennzeichnungen aus der NumberStyles Enumeration sein. Abhängig vom Wert von style
kann der value
Parameter die folgenden Elemente enthalten:
[ws] [$] [Signieren] [Ziffern,]Ziffern[.fractional_digits][E[Zeichen]exponential_digits][ws]
Wenn der parameter style
AllowHexSpecifierenthält, kann der parameter value
die folgenden Elemente enthalten:
[ws]hexdigits[ws]
Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle werden die einzelnen Elemente beschrieben.
Element | Beschreibung |
---|---|
ws | Optionaler Leerraum. Leerzeichen können am Anfang value angezeigt werden, wenn style die NumberStyles.AllowLeadingWhite-Kennzeichnung enthält, oder am Ende der value , wenn style das NumberStyles.AllowTrailingWhite Flag enthält. |
$ | Ein kulturspezifisches Währungssymbol. Die Position in der Zeichenfolge wird durch die CurrencyPositivePattern-Eigenschaft des NumberFormatInfo Objekts definiert, das von der GetFormat-Methode des provider -Parameters zurückgegeben wird. Das Währungssymbol kann in value angezeigt werden, wenn style das NumberStyles.AllowCurrencySymbol Flag enthält. |
signieren | Ein optionales Zeichen. Das Zeichen kann am Anfang der value angezeigt werden, wenn style das NumberStyles.AllowLeadingSign Flag enthält, und es kann am Ende der value angezeigt werden, wenn style das NumberStyles.AllowTrailingSign Flag enthält. Klammern können in value verwendet werden, um einen negativen Wert anzugeben, wenn style das NumberStyles.AllowParentheses Flag enthält. |
Ziffern | Eine Sequenz von Ziffern von 0 bis 9. |
, | Ein kulturspezifisches Gruppentrennzeichen. Das Gruppentrennzeichen der durch provider angegebenen Kultur kann in value angezeigt werden, wenn style das NumberStyles.AllowThousands-Kennzeichen enthält. |
. | Ein kulturspezifisches Dezimalkommasymbol. Das Dezimalkommasymbol der durch provider angegebenen Kultur kann in value angezeigt werden, wenn style das NumberStyles.AllowDecimalPoint Flag enthält. |
fractional_digits | Mindestens ein Vorkommen der Ziffer 0. Dezimalstellen können nur in value angezeigt werden, wenn style das NumberStyles.AllowDecimalPoint Flag enthält. |
E | Das Zeichen "e" oder "E", das angibt, dass der Wert in exponentieller (wissenschaftlicher) Schreibweise dargestellt wird. Der value -Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das NumberStyles.AllowExponent Flag enthält. |
exponential_digits | Eine Sequenz von Ziffern von 0 bis 9. Der value -Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das NumberStyles.AllowExponent Flag enthält. |
hexdigits | Eine Abfolge von hexadezimalen Ziffern von 0 bis f oder 0 bis F. |
Anmerkung
Alle endenden NUL-Zeichen (U+0000) in s
werden unabhängig vom Wert des arguments style
vom Analysevorgang ignoriert.
Eine Zeichenfolge mit Dezimalziffern (die dem kennzeichen NumberStyles.None entspricht) analysiert immer erfolgreich. Die meisten der verbleibenden NumberStyles Elemente steuern Elemente, die vorhanden sein können, aber nicht vorhanden sein müssen, in dieser Eingabezeichenfolge. In der folgenden Tabelle wird angegeben, wie sich einzelne NumberStyles Member auf die Elemente auswirken, die in value
vorhanden sein können.
Nicht zusammengesetzte NumberStyles Werte |
Elemente, die zusätzlich zu Ziffern im Wert zulässig sind |
---|---|
None | Nur Dezimalziffern. |
AllowDecimalPoint | Der Dezimalkomma (.) und fractional_digits Elemente.
fractional_digits darf jedoch nur aus einer oder mehreren 0 Ziffern bestehen, oder die Methode gibt false zurück. |
AllowExponent | Das Zeichen "e" oder "E", das exponentielle Notation zusammen mit exponential_digitsangibt. Wenn value eine Zahl in exponentieller Schreibweise darstellt, kann sie keine Nicht-Null-Bruchkomponente aufweisen. |
AllowLeadingWhite | Das ws-Element am Anfang value . |
AllowTrailingWhite | Das ws-Element am Ende value . |
AllowLeadingSign | Das Element vor Ziffernsignieren. |
AllowTrailingSign | Das signieren Element nach Ziffern. |
AllowParentheses | Das Zeichen Element in Form von Klammern, die den numerischen Wert einschließen. |
AllowThousands | Das Gruppentrennzeichen (,) -Element. |
AllowCurrencySymbol | Das Währungselement ($) |
Currency | Alle Elemente.
value kann jedoch keine hexadezimale Zahl oder eine Zahl in exponentieller Schreibweise darstellen. |
Float | Das ws-Element am Anfang oder Ende der value , Zeichen am Anfang value , und das Dezimalkomma (.) Symbol. Der parameter value kann auch exponentielle Notation verwenden. |
Number | Die ws, Zeichen, Gruppentrennzeichen (,) und Dezimalkomma (.) Elemente. |
Any | Alle Elemente.
value kann jedoch keine hexadezimale Zahl darstellen. |
Wenn das NumberStyles.AllowHexSpecifier-Flag verwendet wird, muss value
ein Hexadezimalwert sein. Gültige Hexadezimalziffern sind 0-9, a-f und A-F. Die einzigen anderen Kennzeichen, die in style
vorhanden sein können, sind NumberStyles.AllowLeadingWhite und NumberStyles.AllowTrailingWhite. (Die NumberStyles-Aufzählung weist eine zusammengesetzte Formatvorlage HexNumberauf, die beide Leerzeichen enthält.)
Anmerkung
Wenn value
die Zeichenfolgendarstellung einer hexadezimalen Zahl ist, kann keine Dekoration (z. B. 0x
oder &h
) vorangestellt werden, die sie als hexadezimale Zahl unterscheidet. Dies führt dazu, dass die Konvertierung fehlschlägt.
Der provider
-Parameter ist eine IFormatProvider Implementierung. Die GetFormat-Methode gibt ein NumberFormatInfo-Objekt zurück, das kulturspezifische Informationen zum Format der value
bereitstellt. Der provider
-Parameter kann eine der folgenden Sein:
Ein CultureInfo-Objekt, das die Kultur darstellt, die Formatierungsinformationen bereitstellt. Die GetFormat-Methode gibt das NumberFormatInfo-Objekt zurück, das numerische Formatierungsinformationen für diese Kultur bereitstellt.
Ein NumberFormatInfo-Objekt, das numerische Formatierungsinformationen bereitstellt. (Seine Umsetzung von GetFormat gibt sich einfach selbst zurück.)
Ein benutzerdefiniertes Objekt, das IFormatProviderimplementiert. Die GetFormat Methode instanziiert und gibt das NumberFormatInfo-Objekt zurück, das Formatierungsinformationen bereitstellt.
Wenn provider
null
ist, wird das NumberFormatInfo Objekt für die aktuelle Kultur verwendet.