Int32.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 entsprechende 32-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob der Vorgang erfolgreich abgeschlossen wurde.
Überlädt
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int32) |
Versucht, eine Spanne von UTF-8-Zeichen in einen Wert zu analysieren. |
TryParse(ReadOnlySpan<Char>, Int32) |
Konvertiert die Spannendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende 32-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich abgeschlossen wurde. |
TryParse(String, Int32) |
Konvertiert die Zeichenfolgendarstellung einer Zahl in die entsprechende 32-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich abgeschlossen wurde. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, Int32) |
Versucht, eine Spanne von Zeichen in einen Wert zu analysieren. |
TryParse(String, IFormatProvider, Int32) |
Versucht, eine Zeichenfolge in einen Wert zu analysieren. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Int32) |
Versucht, eine Spanne von UTF-8-Zeichen in einen Wert zu analysieren. |
TryParse(ReadOnlySpan<Byte>, Int32) |
Versucht, eine UTF-8-Zeichenspanne, die die Zeichenfolgendarstellung einer Zahl enthält, in die entsprechende 32-Bit-Ganzzahl mit Vorzeichen zu konvertieren. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Int32) |
Konvertiert die Spannendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende 32-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich abgeschlossen wurde. |
TryParse(String, NumberStyles, IFormatProvider, Int32) |
Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende 32-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich abgeschlossen wurde. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int32)
- Quelle:
- Int32.cs
- Quelle:
- Int32.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] int % result) = IUtf8SpanParsable<int>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out int result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * int -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As Integer) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Die Spanne der zu analysierenden UTF-8-Zeichen.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu utf8Text
bereitstellt.
- result
- Int32
Enthält bei rückgabe das Ergebnis der erfolgreichen Analyse oder einen nicht definierten utf8Text
Wert bei Einem Fehler.
Gibt zurück
true
, wenn utf8Text
erfolgreich analysiert wurde, false
andernfalls .
Gilt für:
TryParse(ReadOnlySpan<Char>, Int32)
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
Konvertiert die Spannendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende 32-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich abgeschlossen wurde.
public:
static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] int % result);
public static bool TryParse (ReadOnlySpan<char> s, out int result);
static member TryParse : ReadOnlySpan<char> * int -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Integer) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Eine Zeichenspanne, die die zu konvertierende Zahl darstellt
- result
- Int32
Diese Methode gibt bei erfolgreicher Konvertierung den 32-Bit-Ganzzahlwert mit Vorzeichen zurück, der der Zahl in s
entspricht, und 0 (null), wenn die Konvertierung nicht durchgeführt werden konnte. Die Konvertierung schlägt fehl, wenn der s
Parameter null
oder Emptyist, nicht in einem Format mit konform style
ist oder eine Zahl darstellt, die kleiner als Int32.MinValue oder größer als Int32.MaxValue ist. Dieser Parameter wird nicht initialisiert übergeben. Jeder Wert, der ursprünglich im bereitgestellten result
überschrieben werden.
Gibt zurück
true
, wenn s
erfolgreich konvertiert wurde, andernfalls false
.
Gilt für:
TryParse(String, Int32)
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
Konvertiert die Zeichenfolgendarstellung einer Zahl in die entsprechende 32-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich abgeschlossen wurde.
public:
static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] int % result);
public static bool TryParse (string s, out int result);
public static bool TryParse (string? s, out int result);
static member TryParse : string * int -> bool
Public Shared Function TryParse (s As String, ByRef result As Integer) As Boolean
Parameter
- s
- String
Eine Zeichenfolge, die die zu konvertierende Zahl enthält.
- result
- Int32
Diese Methode gibt bei erfolgreicher Konvertierung den 32-Bit-Ganzzahlwert mit Vorzeichen zurück, der der Zahl in s
entspricht, und 0 (null), wenn die Konvertierung nicht durchgeführt werden konnte. Die Konvertierung schlägt fehl, wenn der s
Parameter oder Emptynicht das richtige Format aufweist null
oder eine Zahl kleiner als Int32.MinValue oder größer als Int32.MaxValue darstellt. Dieser Parameter wird nicht initialisiert übergeben. Jeder Wert, der ursprünglich im bereitgestellten result
überschrieben werden.
Gibt zurück
true
, wenn s
erfolgreich konvertiert wurde, andernfalls false
.
Beispiele
Im folgenden Beispiel wird die Int32.TryParse(String, Int32) -Methode mit einer Reihe verschiedener Zeichenfolgenwerte aufgerufen.
using namespace System;
void TryToParse(String^ value)
{
Int32 number;
bool result = Int32::TryParse(value, number);
if (result) {
Console::WriteLine("Converted '{0}' to {1}.", value, number);
}
else {
if (value == nullptr) value = "";
Console::WriteLine("Attempted conversion of '{0}' failed.", value);
}
}
void main()
{
TryToParse(nullptr);
TryToParse("160519");
TryToParse("9432.0");
TryToParse("16,667");
TryToParse(" -322 ");
TryToParse("+4302");
TryToParse("(100);");
TryToParse("01FA");
}
// The example displays the following output:
// Attempted conversion of '' failed.
// Converted '160519' to 160519.
// Attempted conversion of '9432.0' failed.
// Attempted conversion of '16,667' failed.
// Converted ' -322 ' to -322.
// Converted '+4302' to 4302.
// Attempted conversion of '(100);' failed.
// Attempted conversion of '01FA' failed.
using System;
public class Example
{
public static void Main()
{
string[] values = { null, "160519", "9432.0", "16,667",
" -322 ", "+4302", "(100);", "01FA" };
foreach (var value in values)
{
int number;
bool success = int.TryParse(value, out number);
if (success)
{
Console.WriteLine($"Converted '{value}' to {number}.");
}
else
{
Console.WriteLine($"Attempted conversion of '{value ?? "<null>"}' failed.");
}
}
}
}
// The example displays the following output:
// Attempted conversion of '<null>' failed.
// Converted '160519' to 160519.
// Attempted conversion of '9432.0' failed.
// Attempted conversion of '16,667' failed.
// Converted ' -322 ' to -322.
// Converted '+4302' to 4302.
// Attempted conversion of '(100);' failed.
// Attempted conversion of '01FA' failed.
open System
let values =
[ null; "160519"; "9432.0"; "16,667"
" -322 "; "+4302"; "(100);"; "01FA" ]
for value in values do
match Int32.TryParse value with
| true, number ->
printfn $"Converted '{value}' to {number}."
| _ ->
printfn $"""Attempted conversion of '{if isNull value then "<null>" else value}' failed."""
// The example displays the following output:
// Attempted conversion of '<null>' failed.
// Converted '160519' to 160519.
// Attempted conversion of '9432.0' failed.
// Attempted conversion of '16,667' failed.
// Converted ' -322 ' to -322.
// Converted '+4302' to 4302.
// Attempted conversion of '(100);' failed.
// Attempted conversion of '01FA' failed.
Module Example
Public Sub Main()
Dim values() As String = { Nothing, "160519", "9432.0", "16,667",
" -322 ", "+4302", "(100);",
"01FA" }
For Each value In values
Dim number As Integer
Dim success As Boolean = Int32.TryParse(value, number)
If success Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
Console.WriteLine("Attempted conversion of '{0}' failed.",
If(value ,"<null>"))
End If
Next
End Sub
End Module
' The example displays the following output to the console:
' Attempted conversion of '<null>' failed.
' Converted '160519' to 160519.
' Attempted conversion of '9432.0' failed.
' Attempted conversion of '16,667' failed.
' Converted ' -322 ' to -322.
' Converted '+4302' to 4302.
' Attempted conversion of '(100)' failed.
' Attempted conversion of '01FA' failed.
Einige der Zeichenfolgen, die die TryParse(String, Int32) -Methode in diesem Beispiel nicht konvertieren kann, sind:
"9432.0". Die Konvertierung schlägt fehl, da die Zeichenfolge kein Dezimaltrennzeichen enthalten kann. Er darf nur integrale Ziffern enthalten.
"16,667". Die Konvertierung schlägt fehl, da die Zeichenfolge keine Gruppentrennzeichen enthalten kann. Er darf nur integrale Ziffern enthalten.
"(100)". Die Konvertierung schlägt fehl, da die Zeichenfolge kein negatives NumberFormatInfo.NegativeSign Vorzeichen als das durch die Eigenschaften und NumberFormatInfo.NumberNegativePattern der aktuellen Kultur definierte enthalten kann.
"01FA". Die Konvertierung schlägt fehl, da die Zeichenfolge keine Hexadezimalstellen enthalten kann. Sie darf nur Dezimalstellen enthalten.
Hinweise
Die TryParse -Methode ähnelt der Parse -Methode, mit der Ausnahme, dass die TryParse -Methode keine Ausnahme auslöst, wenn die Konvertierung fehlschlägt. Es entfällt die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um im Fall eines FormatException zu testen, das s
ungültig ist und nicht erfolgreich analysiert werden kann.
Der s
Parameter enthält eine Nummer des Formulars:
[ws] [Sign]digits[ws]
Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle wird jedes Element beschrieben.
Element | BESCHREIBUNG |
---|---|
ws | Optionaler Leerraum. |
sign | Ein optionales Zeichen. |
Zahlen | Eine Sequenz von Ziffern im Bereich von 0 bis 9. |
Der s
Parameter wird mithilfe des Stils NumberStyles.Integer interpretiert. Zusätzlich zu den Dezimalstellen sind nur führende und nachfolgende Leerzeichen zusammen mit einem führenden Zeichen zulässig. Verwenden Sie die -Methode, um die Stilelemente explizit zusammen mit den kulturspezifischen Formatierungsinformationen zu definieren, die Int32.TryParse(String, NumberStyles, IFormatProvider, Int32) in s
vorhanden sein können.
Der s
Parameter wird mithilfe der Formatierungsinformationen in einem NumberFormatInfo Objekt analysiert, das für die aktuelle Systemkultur initialisiert wurde. Weitere Informationen finden Sie unter CurrentInfo.
Diese Überladung der TryParse -Methode interpretiert alle Ziffern im s
Parameter als Dezimalstellen. Rufen Sie die Überladung auf, um die Int32.TryParse(String, NumberStyles, IFormatProvider, Int32) Zeichenfolgendarstellung einer Hexadezimalzahl zu analysieren.
Weitere Informationen
- Parse(String)
- ToString()
- Analysieren numerischer Zeichenfolgen in .NET
- Beispiel: .NET Core-Hilfsprogramm zur Formatierung von WinForms (C#)
- Beispiel: .NET Core-Hilfsprogramm zur Formatierung von WinForms (Visual Basic)
Gilt für:
TryParse(ReadOnlySpan<Char>, IFormatProvider, Int32)
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
Versucht, eine Spanne von Zeichen in einen Wert zu analysieren.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] int % result) = ISpanParsable<int>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out int result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * int -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As Integer) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Die Spanne der zu analysierenden Zeichen.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu s
bereitstellt.
- result
- Int32
Wenn diese Methode zurückgibt, enthält das Ergebnis der erfolgreichen s
Analyse oder einen undefinierten Wert bei Einem Fehler.
Gibt zurück
true
, wenn s
erfolgreich analysiert wurde, false
andernfalls .
Gilt für:
TryParse(String, IFormatProvider, Int32)
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
Versucht, eine Zeichenfolge in einen Wert zu analysieren.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] int % result) = IParsable<int>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out int result);
static member TryParse : string * IFormatProvider * int -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As Integer) As Boolean
Parameter
- s
- String
Die zu analysierende Zeichenfolge.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu s
bereitstellt.
- result
- Int32
Wenn diese Methode zurückgibt, enthält das Ergebnis der erfolgreichen s
Analyse oder einen nicht definierten Wert bei Einem Fehler.
Gibt zurück
true
, wenn s
erfolgreich analysiert wurde, false
andernfalls .
Gilt für:
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Int32)
- Quelle:
- Int32.cs
- Quelle:
- Int32.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] int % result) = System::Numerics::INumberBase<int>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out int result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * int -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As Integer) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Die Spanne der zu analysierenden UTF-8-Zeichen.
- style
- NumberStyles
Eine bitweise Kombination von Zahlenformatvorlagen, die in utf8Text
vorhanden sein können.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu utf8Text
bereitstellt.
- result
- Int32
Enthält bei rückgabe das Ergebnis der erfolgreichen Analyse oder einen nicht definierten utf8Text
Wert bei Einem Fehler.
Gibt zurück
true
, wenn utf8Text
erfolgreich analysiert wurde, false
andernfalls .
Gilt für:
TryParse(ReadOnlySpan<Byte>, Int32)
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
Versucht, eine UTF-8-Zeichenspanne, die die Zeichenfolgendarstellung einer Zahl enthält, in die entsprechende 32-Bit-Ganzzahl mit Vorzeichen zu konvertieren.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] int % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out int result);
static member TryParse : ReadOnlySpan<byte> * int -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As Integer) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Eine Spanne, die die UTF-8-Zeichen enthält, die die zu konvertierende Zahl darstellen.
- result
- Int32
Wenn diese Methode zurückgibt, enthält die 32-Bit-Ganzzahl mit Vorzeichen, die 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. Im Ergebnis ursprünglich übergebene Werte werden ausnahmslos überschrieben.
Gibt zurück
true
, wenn utf8Text
erfolgreich konvertiert wurde, andernfalls false
.
Gilt für:
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Int32)
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
Konvertiert die Spannendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende 32-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich abgeschlossen wurde.
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] int % result);
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] int % result) = System::Numerics::INumberBase<int>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out int result);
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out int result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * int -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Integer) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Eine Zeichenspanne, die die zu konvertierende Zahl darstellt Die Spanne wird unter Verwendung des durch style
angegebenen Stils interpretiert.
- style
- NumberStyles
Eine bitweise Kombination von Enumerationswerten, die die Stilelemente angeben, die in s
vorhanden sein können. Ein häufig angegebener Wert ist Integer.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu s
bereitstellt.
- result
- Int32
Diese Methode gibt bei erfolgreicher Konvertierung den 32-Bit-Ganzzahlwert mit Vorzeichen zurück, der der Zahl in s
entspricht, und 0 (null), wenn die Konvertierung nicht durchgeführt werden konnte. Die Konvertierung schlägt fehl, wenn der s
Parameter null
oder Emptyist, nicht in einem Format mit konform style
ist oder eine Zahl darstellt, die kleiner als Int32.MinValue oder größer als Int32.MaxValue ist. Dieser Parameter wird nicht initialisiert übergeben. Jeder Wert, der ursprünglich im bereitgestellten result
überschrieben werden.
Gibt zurück
true
, wenn s
erfolgreich konvertiert wurde, andernfalls false
.
Gilt für:
TryParse(String, NumberStyles, IFormatProvider, Int32)
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
- Quelle:
- Int32.cs
Konvertiert die Zeichenfolgendarstellung einer Zahl in einem angegebenen Stil und einem kulturspezifischen Format in die entsprechende 32-Bit-Ganzzahl mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich abgeschlossen wurde.
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] int % result);
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] int % result) = System::Numerics::INumberBase<int>::TryParse;
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out int result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out int result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * int -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Integer) As Boolean
Parameter
- s
- String
Eine Zeichenfolge, die die zu konvertierende Zahl enthält. Die Zeichenfolge wird unter Verwendung des durch style
angegebenen Formats interpretiert.
- style
- NumberStyles
Eine bitweise Kombination von Enumerationswerten, die die Stilelemente angeben, die in s
vorhanden sein können. Ein häufig angegebener Wert ist Integer.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu s
bereitstellt.
- result
- Int32
Diese Methode gibt bei erfolgreicher Konvertierung den 32-Bit-Ganzzahlwert mit Vorzeichen zurück, der der Zahl in s
entspricht, und 0 (null), wenn die Konvertierung nicht durchgeführt werden konnte. Die Konvertierung schlägt fehl, wenn der s
Parameter null
oder Emptyist, nicht in einem Format mit konform style
ist oder eine Zahl darstellt, die kleiner als Int32.MinValue oder größer als Int32.MaxValue ist. Dieser Parameter wird nicht initialisiert übergeben. Jeder Wert, der ursprünglich im bereitgestellten result
überschrieben werden.
Gibt zurück
true
, wenn s
erfolgreich konvertiert wurde, andernfalls false
.
Ausnahmen
style
ist kein NumberStyles-Wert.
- oder -
style
ist keine Kombination von AllowHexSpecifier- und HexNumber-Werten.
Beispiele
Im folgenden Beispiel wird die Int32.TryParse(String, NumberStyles, IFormatProvider, Int32) -Methode mit verschiedenen Zeichenfolgen und NumberStyles Werten aufgerufen.
using namespace System;
using namespace System::Globalization;
void CallTryParse(String^ stringToConvert, NumberStyles styles)
{
Int32 number;
CultureInfo^ provider;
// If currency symbol is allowed, use en-US culture.
if (((Int32) (styles & NumberStyles::AllowCurrencySymbol)) > 0)
provider = gcnew CultureInfo("en-US");
else
provider = CultureInfo::InvariantCulture;
bool result = Int32::TryParse(stringToConvert, styles,
provider, number);
if (result)
Console::WriteLine("Converted '{0}' to {1}.", stringToConvert, number);
else
Console::WriteLine("Attempted conversion of '{0}' failed.",
Convert::ToString(stringToConvert));
}
void main()
{
String^ numericString;
NumberStyles styles;
numericString = "106779";
styles = NumberStyles::Integer;
CallTryParse(numericString, styles);
numericString = "-30677";
styles = NumberStyles::None;
CallTryParse(numericString, styles);
styles = NumberStyles::AllowLeadingSign;
CallTryParse(numericString, styles);
numericString = "301677-";
CallTryParse(numericString, styles);
styles = styles | NumberStyles::AllowTrailingSign;
CallTryParse(numericString, styles);
numericString = "$10634";
styles = NumberStyles::Integer;
CallTryParse(numericString, styles);
styles = NumberStyles::Integer | NumberStyles::AllowCurrencySymbol;
CallTryParse(numericString, styles);
numericString = "10345.00";
styles = NumberStyles::Integer | NumberStyles::AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "10345.72";
styles = NumberStyles::Integer | NumberStyles::AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "22,593";
styles = NumberStyles::Integer | NumberStyles::AllowThousands;
CallTryParse(numericString, styles);
numericString = "12E-01";
styles = NumberStyles::Integer | NumberStyles::AllowExponent;
CallTryParse(numericString, styles);
numericString = "12E03";
CallTryParse(numericString, styles);
numericString = "80c1";
CallTryParse(numericString, NumberStyles::HexNumber);
numericString = "0x80C1";
CallTryParse(numericString, NumberStyles::HexNumber);
Console::ReadLine();
}
// The example displays the following output:
// Converted '106779' to 106779.
// Attempted conversion of '-30677' failed.
// Converted '-30677' to -30677.
// Attempted conversion of '301677-' failed.
// Converted '301677-' to -301677.
// Attempted conversion of '$10634' failed.
// Converted '$10634' to 10634.
// Converted '10345.00' to 10345.
// Attempted conversion of '10345.72' failed.
// Converted '22,593' to 22593.
// Attempted conversion of '12E-01' failed.
// Converted '12E03' to 12000.
// Converted '80c1' to 32961.
// Attempted conversion of '0x80C1' failed.
using System;
using System.Globalization;
public class StringParsing
{
public static void Main()
{
string numericString;
NumberStyles styles;
numericString = "106779";
styles = NumberStyles.Integer;
CallTryParse(numericString, styles);
numericString = "-30677";
styles = NumberStyles.None;
CallTryParse(numericString, styles);
styles = NumberStyles.AllowLeadingSign;
CallTryParse(numericString, styles);
numericString = "301677-";
CallTryParse(numericString, styles);
styles = styles | NumberStyles.AllowTrailingSign;
CallTryParse(numericString, styles);
numericString = "$10634";
styles = NumberStyles.Integer;
CallTryParse(numericString, styles);
styles = NumberStyles.Integer | NumberStyles.AllowCurrencySymbol;
CallTryParse(numericString, styles);
numericString = "10345.00";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "10345.72";
styles = NumberStyles.Integer | NumberStyles.AllowDecimalPoint;
CallTryParse(numericString, styles);
numericString = "22,593";
styles = NumberStyles.Integer | NumberStyles.AllowThousands;
CallTryParse(numericString, styles);
numericString = "12E-01";
styles = NumberStyles.Integer | NumberStyles.AllowExponent;
CallTryParse(numericString, styles);
numericString = "12E03";
CallTryParse(numericString, styles);
numericString = "80c1";
CallTryParse(numericString, NumberStyles.HexNumber);
numericString = "0x80C1";
CallTryParse(numericString, NumberStyles.HexNumber);
}
private static void CallTryParse(string stringToConvert, NumberStyles styles)
{
CultureInfo provider;
// If currency symbol is allowed, use en-US culture.
if ((styles & NumberStyles.AllowCurrencySymbol) > 0)
provider = new CultureInfo("en-US");
else
provider = CultureInfo.InvariantCulture;
bool success = int.TryParse(stringToConvert, styles,
provider, out int number);
if (success)
Console.WriteLine($"Converted '{stringToConvert}' to {number}.");
else
Console.WriteLine($"Attempted conversion of '{stringToConvert}' failed.");
}
}
// The example displays the following output to the console:
// Converted '106779' to 106779.
// Attempted conversion of '-30677' failed.
// Converted '-30677' to -30677.
// Attempted conversion of '301677-' failed.
// Converted '301677-' to -301677.
// Attempted conversion of '$10634' failed.
// Converted '$10634' to 10634.
// Converted '10345.00' to 10345.
// Attempted conversion of '10345.72' failed.
// Converted '22,593' to 22593.
// Attempted conversion of '12E-01' failed.
// Converted '12E03' to 12000.
// Converted '80c1' to 32961.
// Attempted conversion of '0x80C1' failed.
open System
open System.Globalization
let callTryParse (stringToConvert: string) styles =
let provider =
// If currency symbol is allowed, use en-US culture.
if int (styles &&& NumberStyles.AllowCurrencySymbol) > 0 then
CultureInfo "en-US"
else
CultureInfo.InvariantCulture
match Int32.TryParse(stringToConvert, styles, provider) with
| true, number ->
printfn $"Converted '{stringToConvert}' to {number}."
| _ ->
printfn $"Attempted conversion of '{stringToConvert}' failed."
[<EntryPoint>]
let main _ =
let numericString = "106779"
let styles = NumberStyles.Integer
callTryParse numericString styles
let numericString = "-30677"
let styles = NumberStyles.None
callTryParse numericString styles
let styles = NumberStyles.AllowLeadingSign
callTryParse numericString styles
let numericString = "301677-"
callTryParse numericString styles
let styles = styles ||| NumberStyles.AllowTrailingSign
callTryParse numericString styles
let numericString = "$10634"
let styles = NumberStyles.Integer
callTryParse numericString styles
let styles = NumberStyles.Integer ||| NumberStyles.AllowCurrencySymbol
callTryParse numericString styles
let numericString = "10345.00"
let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
callTryParse numericString styles
let numericString = "10345.72"
let styles = NumberStyles.Integer ||| NumberStyles.AllowDecimalPoint
callTryParse numericString styles
let numericString = "22,593"
let styles = NumberStyles.Integer ||| NumberStyles.AllowThousands
callTryParse numericString styles
let numericString = "12E-01"
let styles = NumberStyles.Integer ||| NumberStyles.AllowExponent
callTryParse numericString styles
let numericString = "12E03"
callTryParse numericString styles
let numericString = "80c1"
callTryParse numericString NumberStyles.HexNumber
let numericString = "0x80C1"
callTryParse numericString NumberStyles.HexNumber
0
// The example displays the following output to the console:
// Converted '106779' to 106779.
// Attempted conversion of '-30677' failed.
// Converted '-30677' to -30677.
// Attempted conversion of '301677-' failed.
// Converted '301677-' to -301677.
// Attempted conversion of '$10634' failed.
// Converted '$10634' to 10634.
// Converted '10345.00' to 10345.
// Attempted conversion of '10345.72' failed.
// Converted '22,593' to 22593.
// Attempted conversion of '12E-01' failed.
// Converted '12E03' to 12000.
// Converted '80c1' to 32961.
// Attempted conversion of '0x80C1' failed.
Imports System.Globalization
Module StringParsing
Public Sub Main()
Dim numericString As String
Dim styles As NumberStyles
numericString = "106779"
styles = NumberStyles.Integer
CallTryParse(numericString, styles)
numericString = "-30677"
styles = NumberStyles.None
CallTryParse(numericString, styles)
styles = NumberStyles.AllowLeadingSign
CallTryParse(numericString, styles)
numericString = "301677-"
CallTryParse(numericString, styles)
styles = styles Or NumberStyles.AllowTrailingSign
CallTryParse(numericString, styles)
numericString = "$10634"
styles = NumberStyles.Integer
CallTryParse(numericString, styles)
styles = NumberStyles.Integer Or NumberStyles.AllowCurrencySymbol
CallTryParse(numericString, styles)
numericString = "10345.00"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "10345.72"
styles = NumberStyles.Integer Or NumberStyles.AllowDecimalPoint
CallTryParse(numericString, styles)
numericString = "22,593"
styles = NumberStyles.Integer Or NumberStyles.AllowThousands
CallTryParse(numericString, styles)
numericString = "12E-01"
styles = NumberStyles.Integer Or NumberStyles.AllowExponent
CallTryParse(numericString, styles)
numericString = "12E03"
CallTryParse(numericString, styles)
numericString = "80c1"
CallTryParse(numericString, NumberStyles.HexNumber)
numericString = "0x80C1"
CallTryParse(numericString, NumberStyles.HexNumber)
End Sub
Private Sub CallTryParse(stringToConvert As String, styles AS NumberStyles)
Dim number As Integer
Dim provider As CultureInfo
' If currency symbol is allowed, use en-US culture.
If CBool(styles And NumberStyles.AllowCurrencySymbol) Then
provider = CultureInfo.CurrentCulture
Else
provider = New CultureInfo("en-US")
End If
Dim result As Boolean = Int32.TryParse(stringToConvert, styles, _
provider, number)
If result Then
Console.WriteLine("Converted '{0}' to {1}.", stringToConvert, number)
Else
Console.WriteLine("Attempted conversion of '{0}' failed.", _
Convert.ToString(stringToConvert))
End If
End Sub
End Module
' The example displays the following output to the console:
' Converted '106779' to 106779.
' Attempted conversion of '-30677' failed.
' Converted '-30677' to -30677.
' Attempted conversion of '301677-' failed.
' Converted '301677-' to -301677.
' Attempted conversion of '$10634' failed.
' Converted '$10634' to 10634.
' Converted '10345.00' to 10345.
' Attempted conversion of '10345.72' failed.
' Converted '22,593' to 22593.
' Attempted conversion of '12E-01' failed.
' Converted '12E03' to 12000.
' Converted '80c1' to 32961.
' Attempted conversion of '0x80C1' failed.
Hinweise
Die TryParse -Methode ähnelt der Parse -Methode, mit der Ausnahme, dass die TryParse -Methode keine Ausnahme auslöst, wenn die Konvertierung fehlschlägt. Es entfällt die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um auf einen FormatException zu testen, s
der ungültig ist und nicht erfolgreich analysiert werden kann.
Der style
Parameter definiert die Stilelemente (z. B. Leerzeichen oder ein positives oder negatives Vorzeichen), die s
im Parameter zulässig sind, damit der Analysevorgang erfolgreich ist. Es muss sich um eine Kombination von Bitflags aus der NumberStyles Enumeration handeln. Abhängig vom Wert von style
kann der s
Parameter die folgenden Elemente enthalten:
[ws] [$] [sign] [Digits,]digits[.fractional_digits][e[sign]digits][ws]
Oder, wenn der style
Parameter enthält AllowHexSpecifier:
[ws]hexdigits[ws]
Elemente in eckigen Klammern ([ und ]) sind optional. In der folgenden Tabelle wird jedes Element beschrieben.
Element | BESCHREIBUNG |
---|---|
ws | Optionaler Leerraum. Leerzeichen können am Anfang von s angezeigt werden, wenn style das NumberStyles.AllowLeadingWhite Flag enthalten ist, oder am Ende von s , wenn style das NumberStyles.AllowTrailingWhite Flag enthält. |
$ | Ein kulturspezifisches Währungssymbol. Seine Position in der Zeichenfolge wird durch die CurrencyPositivePattern -Eigenschaft des Objekts definiert, das NumberFormatInfo von der GetFormat -Methode des provider Parameters zurückgegeben wird. Das Währungssymbol kann in s angezeigt werden, wenn style das NumberStyles.AllowCurrencySymbol Flag enthält. |
sign | Ein optionales Zeichen. Ein Zeichensymbol kann in s angezeigt werden, wenn style die NumberStyles.AllowLeadingSign Flags oder NumberStyles.AllowTrailingSign enthalten sind. |
Zahlen | Eine Sequenz von Ziffern von 0 bis 9. |
, | Ein kulturspezifisches Tausendertrennzeichen. Das Tausendertrennzeichen der kultur, die von angegeben wird provider , kann in s angezeigt werden, wenn style das NumberStyles.AllowThousands Flag enthält. |
. | Ein kulturspezifisches Dezimaltrennzeichen. Das Dezimaltrennzeichensymbol der von provider angegebenen Kultur kann in s angezeigt werden, wenn style das NumberStyles.AllowDecimalPoint Flag enthält. |
fractional_digits | Mindestens ein Vorkommen der Ziffer 0. Bruchstellen können nur in s angezeigt werden, wenn style das NumberStyles.AllowDecimalPoint Flag enthalten ist. |
e | Das Zeichen "e" oder "E", das angibt, dass der Wert in exponentieller Notation dargestellt wird. Der s Parameter kann eine Zahl in exponentieller Notation darstellen, wenn style das NumberStyles.AllowExponent Flag enthalten ist. |
hexdigits | Eine Sequenz von Hexadezimalstellen von 0 bis f oder 0 bis F. |
Hinweis
Alle endenden NUL-Zeichen (U+0000) in s
werden vom Analysevorgang ignoriert, unabhängig vom Wert des style
Arguments.
Eine Zeichenfolge nur mit Dezimalstellen (die dem NumberStyles.None Flag entspricht) analysiert immer erfolgreich. Die meisten der verbleibenden NumberStyles Member steuern Elemente, die in dieser Eingabezeichenfolge möglicherweise vorhanden sein, aber nicht erforderlich sind. Die folgende Tabelle gibt an, wie sich einzelne NumberStyles Member auf die Elemente auswirken, die in s
vorhanden sein können.
Nicht zusammengesetzte NumberStyles-Werte | Zulässige Elemente in s zusätzlich zu Ziffern |
---|---|
NumberStyles.None | Nur Dezimalstellen. |
NumberStyles.AllowDecimalPoint | Das Dezimaltrennzeichen (.) und fractional_digits Elemente. Allerdings darf fractional_digits nur aus einer oder mehreren 0 Ziffern bestehen, oder die -Methode gibt zurück false . |
NumberStyles.AllowExponent | Der s Parameter kann auch exponentielle Notation verwenden. Wenn s eine Zahl in exponentieller Notation darstellt, muss sie eine ganze Zahl innerhalb des Bereichs des Int32 Datentyps ohne eine Bruchkomponente ungleich 0 (Null) darstellen. |
NumberStyles.AllowLeadingWhite | Das ws-Element am Anfang von s . |
NumberStyles.AllowTrailingWhite | Das ws-Element am Ende von s . |
NumberStyles.AllowLeadingSign | Ein Zeichen kann vor Ziffern angezeigt werden. |
NumberStyles.AllowTrailingSign | Ein Zeichen kann nach Ziffern angezeigt werden. |
NumberStyles.AllowParentheses | Das Zeichenelement in Form von Klammern, die den numerischen Wert einschließen. |
NumberStyles.AllowThousands | Das Tausendertrennzeichen (,)-Element. |
NumberStyles.AllowCurrencySymbol | Das $-Element. |
NumberStyles.Currency | Alle Elemente. Der s Parameter kann keine hexadezimale Zahl oder eine Zahl in exponentieller Notation darstellen. |
NumberStyles.Float | Das ws-Element am Anfang oder Ende von s , signieren am Anfang von s und das Dezimaltrennzeichen (.). Der s Parameter kann auch exponentielle Notation verwenden. |
NumberStyles.Number | Die Elemente ws, vorzeichen, Tausendertrennzeichen (,) und Dezimalstellen (.). |
NumberStyles.Any | Alle Stile, außer s können keine Hexadezimalzahl darstellen. |
Wenn das NumberStyles.AllowHexSpecifier Flag verwendet wird, s
muss ein Hexadezimalwert ohne Präfix sein. Beispielsweise analysiert "C9AF3" erfolgreich, "0xC9AF3" jedoch nicht. Die einzigen anderen Flags, die in style
vorhanden sein können, sind NumberStyles.AllowLeadingWhite und NumberStyles.AllowTrailingWhite. (Die NumberStyles Enumeration weist ein zusammengesetztes Format auf, NumberStyles.HexNumberdas beide Leerzeichenflags enthält.)
Der provider
Parameter ist eine IFormatProvider Implementierung, z. B. ein CultureInfo -Objekt oder ein NumberFormatInfo -Objekt, dessen GetFormat -Methode ein NumberFormatInfo -Objekt zurückgibt. Das NumberFormatInfo -Objekt stellt kulturspezifische Informationen zum Format von bereit s
. Wenn provider
ist null
, wird das NumberFormatInfo -Objekt für die aktuelle Kultur verwendet.
Weitere Informationen
Gilt für:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für