Int64.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 64-Bit-ganzzahlige Entsprechung mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.
Überlädt
TryParse(String, IFormatProvider, Int64) |
Versucht, eine Zeichenfolge in einen Wert zu analysieren. |
TryParse(ReadOnlySpan<Char>, Int64) |
Wandelt die Spandarstellung einer Zahl in die 64-Bit-ganzzahlige Entsprechung um. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist. |
TryParse(String, Int64) |
Konvertiert die Zeichenfolgendarstellung einer Zahl in die 64-Bit-ganzzahlige Entsprechung mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int64) |
Versucht, eine Spanne von UTF-8 Zeichen in einen Wert zu analysieren. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, Int64) |
Versucht, einen Bereich von Zeichen in einen Wert zu analysieren. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Int64) |
Versucht, eine Spanne von UTF-8 Zeichen in einen Wert zu analysieren. |
TryParse(ReadOnlySpan<Byte>, Int64) |
Versucht, einen UTF-8-Zeichenbereich zu konvertieren, der die Zeichenfolgendarstellung einer Zahl in seine 64-Bit-ganzzahlige Entsprechung enthält. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Int64) |
Konvertiert die Spandarstellung einer Zahl in einer angegebenen Formatvorlage und einem kulturspezifischen Format in die 64-Bit-ganzzahlige Entsprechung mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist. |
TryParse(String, NumberStyles, IFormatProvider, Int64) |
Konvertiert die Zeichenfolgendarstellung einer Zahl in einer angegebenen Formatvorlage und einem kulturspezifischen Format in dessen 64-Bit-Ganzzahläquivalent. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist. |
TryParse(String, IFormatProvider, Int64)
- Quelle:
- Int64.cs
- Quelle:
- Int64.cs
- Quelle:
- Int64.cs
Versucht, eine Zeichenfolge in einen Wert zu analysieren.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] long % result) = IParsable<long>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out long result);
static member TryParse : string * IFormatProvider * int64 -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As Long) As Boolean
Parameter
- s
- String
Die zu analysierende Zeichenfolge.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu s
bereitstellt.
- result
- Int64
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<Char>, Int64)
- Quelle:
- Int64.cs
- Quelle:
- Int64.cs
- Quelle:
- Int64.cs
Wandelt die Spandarstellung einer Zahl in die 64-Bit-ganzzahlige Entsprechung um. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.
public:
static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] long % result);
public static bool TryParse (ReadOnlySpan<char> s, out long result);
static member TryParse : ReadOnlySpan<char> * int64 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Long) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Eine Spanne mit den Zeichen, die die zu konvertierende Zahl darstellen.
- result
- Int64
Wenn diese Methode zurückgegeben wird, enthält sie den 64-Bit-ganzzahligen Ganzzahlwert der Zahl, 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 das richtige Format aufweist oder eine Zahl kleiner als Int64.MinValue oder größer als Int64.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
.
Gilt für:
TryParse(String, Int64)
- Quelle:
- Int64.cs
- Quelle:
- Int64.cs
- Quelle:
- Int64.cs
Konvertiert die Zeichenfolgendarstellung einer Zahl in die 64-Bit-ganzzahlige Entsprechung mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.
public:
static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] long % result);
public static bool TryParse (string s, out long result);
public static bool TryParse (string? s, out long result);
static member TryParse : string * int64 -> bool
Public Shared Function TryParse (s As String, ByRef result As Long) As Boolean
Parameter
- s
- String
Eine Zeichenfolge, die eine zahl enthält, die konvertiert werden soll.
- result
- Int64
Wenn diese Methode zurückgegeben wird, enthält sie den 64-Bit-ganzzahligen Ganzzahlwert der Zahl, 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 das richtige Format aufweist oder eine Zahl kleiner als Int64.MinValue oder größer als Int64.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
.
Beispiele
Im folgenden Beispiel wird die Int64.TryParse(String, Int64)-Methode mit einer Reihe unterschiedlicher Zeichenfolgenwerte aufgerufen.
using System;
public class StringParsing
{
public static void Main()
{
TryToParse(null);
TryToParse("160519");
TryToParse("9432.0");
TryToParse("16,667");
TryToParse(" -322 ");
TryToParse("+4302");
TryToParse("(100);");
TryToParse("01FA");
}
private static void TryToParse(string value)
{
bool success = Int64.TryParse(value, out long number);
if (success)
{
Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
else
{
if (value == null) value = "";
Console.WriteLine("Attempted conversion of '{0}' failed.", value);
}
}
}
// The example displays the following output to the console:
// 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.
open System
let tryToParse (value: string) =
match Int64.TryParse value with
| true, number ->
printfn $"Converted '{value}' to {number}."
| _ ->
let value =
if isNull value then
""
else
value
printfn $"Attempted conversion of '{value}' failed."
tryToParse null
tryToParse "160519"
tryToParse "9432.0"
tryToParse "16,667"
tryToParse " -322 "
tryToParse "+4302"
tryToParse "(100);"
tryToParse "01FA"
// The example displays the following output to the console:
// 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.
Module StringParsing
Public Sub Main()
TryToParse(Nothing)
TryToParse("160519")
TryToParse("9432.0")
TryToParse("16,667")
TryToParse(" -322 ")
TryToParse("+4302")
TryToParse("(100)")
TryToParse("01FA")
End Sub
Private Sub TryToParse(value As String)
Dim number As Long
Dim result As Boolean = Int64.TryParse(value, number)
If result Then
Console.WriteLine("Converted '{0}' to {1}.", value, number)
Else
If value Is Nothing Then value = ""
Console.WriteLine("Attempted conversion of '{0}' failed.", value)
End If
End Sub
End Module
' The example displays the following output to the console:
' 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.
Einige der Zeichenfolgen, die die TryParse(String, Int64)-Methode in diesem Beispiel nicht konvertieren kann, sind:
"9432.0". Die Konvertierung schlägt fehl, da die Zeichenfolge kein Dezimaltrennzeichen enthalten kann. sie darf nur integrale Ziffern enthalten.
"16,667". Die Konvertierung schlägt fehl, da die Zeichenfolge keine Gruppentrennzeichen enthalten kann; sie darf nur integrale Ziffern enthalten.
"(100)". Die Konvertierung schlägt fehl, da die Zeichenfolge kein negatives Zeichen als das negative Zeichen enthalten kann, das durch die NumberFormatInfo.NegativeSign und NumberFormatInfo.NumberNegativePattern Eigenschaften der aktuellen Kultur definiert ist.
"01FA". Die Konvertierung schlägt fehl, da die Zeichenfolge keine Hexadezimalziffern enthalten kann. sie darf nur Dezimalziffern enthalten.
Hinweise
Die TryParse-Methode ähnelt der Parse-Methode, außer die TryParse Methode löst keine Ausnahme aus, wenn die Konvertierung fehlschlägt. Es beseitigt die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um eine FormatException zu testen, wenn s
ungültig ist und nicht erfolgreich analysiert werden kann.
Der parameter s
enthält eine Zahl des Formulars:
[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. |
Ziffern | Eine Sequenz von Ziffern zwischen 0 und 9. |
Der s
-Parameter wird mithilfe der NumberStyles.Integer-Formatvorlage interpretiert. Neben den Dezimalziffern sind nur führende und nachfolgende Leerzeichen zusammen mit einem vorangestellten Zeichen zulässig. Wenn Sie die Formatvorlagenelemente explizit zusammen mit den kulturspezifischen Formatierungsinformationen definieren möchten, die in s
vorhanden sein können, verwenden Sie die TryParse(String, NumberStyles, IFormatProvider, Int64)-Methode.
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 Dezimalziffern. Rufen Sie die TryParse(String, NumberStyles, IFormatProvider, Int64) überladung auf, um die Zeichenfolgendarstellung einer Hexadezimalzahl zu analysieren.
Weitere Informationen
- Parse(String)
- ToString()
- Analysieren numerischer Zeichenfolgen in .NET-
- Beispiel: .NET Core WinForms Formatting Utility (C#)
- Beispiel: .NET Core WinForms Formatting Utility (Visual Basic)
Gilt für:
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int64)
- Quelle:
- Int64.cs
- Quelle:
- Int64.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] long % result) = IUtf8SpanParsable<long>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out long result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * int64 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As Long) 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
- Int64
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>, IFormatProvider, Int64)
- Quelle:
- Int64.cs
- Quelle:
- Int64.cs
- Quelle:
- Int64.cs
Versucht, einen Bereich von Zeichen in einen Wert zu analysieren.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] long % result) = ISpanParsable<long>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out long result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * int64 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As Long) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Die Spanne der zu analysierenden Zeichen.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu s
bereitstellt.
- result
- Int64
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, Int64)
- Quelle:
- Int64.cs
- Quelle:
- Int64.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] long % result) = System::Numerics::INumberBase<long>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out long result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * int64 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As Long) 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
- Int64
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>, Int64)
- Quelle:
- Int64.cs
- Quelle:
- Int64.cs
Versucht, einen UTF-8-Zeichenbereich zu konvertieren, der die Zeichenfolgendarstellung einer Zahl in seine 64-Bit-ganzzahlige Entsprechung enthält.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] long % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out long result);
static member TryParse : ReadOnlySpan<byte> * int64 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As Long) As Boolean
Parameter
- utf8Text
- ReadOnlySpan<Byte>
Eine Spanne mit den UTF-8-Zeichen, die die zu konvertierende Zahl darstellen.
- result
- Int64
Wenn diese Methode zurückgegeben wird, enthält sie den 64-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, Int64)
- Quelle:
- Int64.cs
- Quelle:
- Int64.cs
- Quelle:
- Int64.cs
Konvertiert die Spandarstellung einer Zahl in einer angegebenen Formatvorlage und einem kulturspezifischen Format in die 64-Bit-ganzzahlige Entsprechung mit Vorzeichen. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] long % result);
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] long % result) = System::Numerics::INumberBase<long>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out long result);
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out long result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * int64 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Long) As Boolean
Parameter
- s
- ReadOnlySpan<Char>
Eine Spanne mit den Zeichen, die die zu konvertierende Zahl darstellen. Die Spanne wird mithilfe der durch style
angegebenen Formatvorlage interpretiert.
- style
- NumberStyles
Eine bitweise Kombination von Enumerationswerten, die die Formatvorlagenelemente angibt, die in s
vorhanden sein können. Ein typischer Wert, der angegeben werden soll, ist Integer.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu s
bereitstellt.
- result
- Int64
Wenn diese Methode zurückgegeben wird, enthält sie den 64-Bit-ganzzahligen Ganzzahlwert der Zahl, die in s
enthalten ist, 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 Int64.MinValue oder größer als Int64.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
.
Gilt für:
TryParse(String, NumberStyles, IFormatProvider, Int64)
- Quelle:
- Int64.cs
- Quelle:
- Int64.cs
- Quelle:
- Int64.cs
Konvertiert die Zeichenfolgendarstellung einer Zahl in einer angegebenen Formatvorlage und einem kulturspezifischen Format in dessen 64-Bit-Ganzzahläquivalent. Ein Rückgabewert gibt an, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] long % result);
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] long % result) = System::Numerics::INumberBase<long>::TryParse;
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out long result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out long result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * int64 -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Long) As Boolean
Parameter
- s
- String
Eine Zeichenfolge, die eine zahl enthält, die konvertiert werden soll. Die Zeichenfolge wird mithilfe der von style
angegebenen Formatvorlage interpretiert.
- style
- NumberStyles
Eine bitweise Kombination von Enumerationswerten, die die Formatvorlagenelemente angibt, die in s
vorhanden sein können. Ein typischer Wert, der angegeben werden soll, ist Integer.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen zu s
bereitstellt.
- result
- Int64
Wenn diese Methode zurückgegeben wird, enthält sie den 64-Bit-ganzzahligen Ganzzahlwert der Zahl, die in s
enthalten ist, 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 Int64.MinValue oder größer als Int64.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
.
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, Int64)-Methode mit einer Reihe unterschiedlicher Zeichenfolgen- und NumberStyles Werte aufgerufen.
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 = Int64.TryParse(stringToConvert, styles,
provider, out long 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 Int64.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 Long
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 = Int64.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, außer die TryParse Methode löst keine Ausnahme aus, wenn die Konvertierung fehlschlägt. Es beseitigt die Notwendigkeit, die Ausnahmebehandlung zu verwenden, um eine FormatException zu testen, wenn s
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 s
-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 parameter s
die folgenden Elemente enthalten:
[ws] [$] [Zeichen] [Ziffern;]Ziffern[.fractional_digits][e[Zeichen]exponential_digits][ws]
Oder, wenn der style
Parameter NumberStyles.AllowHexSpecifierenthält:
[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 der s angezeigt werden, wenn style die NumberStyles.AllowLeadingWhite-Kennzeichnung enthält, oder am Ende der s , wenn style die NumberStyles.AllowTrailingWhite-Kennzeichnung 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 s angezeigt werden, wenn style das NumberStyles.AllowCurrencySymbol Flag enthält. |
signieren | Ein optionales Zeichen. Ein Zeichensymbol kann in s angezeigt werden, wenn style die Kennzeichnungen NumberStyles.AllowLeadingSign oder NumberStyles.AllowTrailingSign enthält. |
Ziffern fractional_digits exponential_digits |
Eine Sequenz von Ziffern von 0 bis 9. Bei fractional_digitsist nur die Ziffer 0 gültig. |
, | Ein kulturspezifisches Tausendertrennzeichen. Das Tausendertrennzeichen der durch provider angegebenen Kultur kann in s angezeigt werden, wenn style die NumberStyles.AllowThousands-Kennzeichnung enthält. |
. | Ein kulturspezifisches Dezimalkommasymbol. Das Dezimalkommasymbol der durch provider angegebenen Kultur kann in s angezeigt werden, wenn style das NumberStyles.AllowDecimalPoint Flag enthält. |
e | Das Zeichen "e" oder "E", das angibt, dass der Wert in exponentieller Schreibweise dargestellt wird. Der s -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 möglicherweise vorhanden sind, aber nicht in dieser Eingabezeichenfolge vorhanden sein müssen. In der folgenden Tabelle wird angegeben, wie sich einzelne NumberStyles Member auf die Elemente auswirken, die in s
vorhanden sein können.
Nicht zusammengesetzte NumberStyles-Werte | Elemente, die zusätzlich zu Ziffern in s zulässig sind |
---|---|
NumberStyles.None | Nur Dezimalziffern. |
NumberStyles.AllowDecimalPoint | Die Dezimalkomma (. ) und fractional_digits Elemente.
fractional_digits darf jedoch nur aus einer oder mehreren 0 Ziffern bestehen, oder die Methode gibt false zurück. |
NumberStyles.AllowExponent | Der parameter s kann auch exponentielle Notation verwenden. Der s -Parameter muss eine ganze Zahl innerhalb des Bereichs des Datentyps Int64 ohne eine Nicht-Null-Bruchkomponente darstellen. |
NumberStyles.AllowLeadingWhite | Das ws-Element am Anfang s . |
NumberStyles.AllowTrailingWhite | Das ws-Element am Ende s . |
NumberStyles.AllowLeadingSign | Ein Zeichen kann vor Ziffernangezeigt werden. |
NumberStyles.AllowTrailingSign | Ein Zeichen kann nach Ziffernangezeigt werden. |
NumberStyles.AllowParentheses | Das Zeichen Element in Form von Klammern, die den numerischen Wert einschließen. |
NumberStyles.AllowThousands | Das Tausendertrennzeichen ( , ) -Element. |
NumberStyles.AllowCurrencySymbol | Das $-Element. |
NumberStyles.Currency | Alle Elemente. Der parameter s kann keine hexadezimale Zahl oder eine Zahl in exponentieller Schreibweise darstellen. |
NumberStyles.Float | Das ws-Element am Anfang oder Ende s , Zeichen am Anfang s und das Dezimalkomma ( . ) Symbol. Der parameter s kann auch exponentielle Notation verwenden. |
NumberStyles.Number | Die ws, Zeichen, Tausendertrennzeichen (,) und Dezimalkomma (.) Elemente. |
NumberStyles.Any | Alle Formatvorlagen, mit Ausnahme von s , können keine hexadezimale Zahl darstellen. |
Wenn das NumberStyles.AllowHexSpecifier-Flag verwendet wird, muss s
ein Hexadezimalwert ohne Präfix sein. Beispielsweise analysiert "C9AF3" erfolgreich, aber "0xC9AF3" nicht. 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 NumberStyles.HexNumberauf, die beide Leerzeichen-Flags 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 s
bereit. Wenn provider
null
ist, wird das NumberFormatInfo Objekt für die aktuelle Kultur verwendet.