Int16.TryParse Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Převede řetězcové vyjádření čísla na jeho 16bitové celé číslo se znaky. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.
Přetížení
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int16) |
Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty. |
TryParse(ReadOnlySpan<Char>, Int16) |
Převede reprezentaci čísla ve formátu specifickém pro jazykovou verzi na 16bitové celé číslo podepsaného ekvivalentem. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný. |
TryParse(String, Int16) |
Převede řetězcové vyjádření čísla na jeho 16bitové celé číslo se znaky. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný. |
TryParse(ReadOnlySpan<Char>, IFormatProvider, Int16) |
Pokusí se analyzovat rozsah znaků do hodnoty. |
TryParse(String, IFormatProvider, Int16) |
Pokusí se analyzovat řetězec do hodnoty. |
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Int16) |
Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty. |
TryParse(ReadOnlySpan<Byte>, Int16) |
Pokusí se převést rozsah znaků UTF-8 obsahující řetězcovou reprezentaci čísla na jeho 16bitový ekvivalent celého čísla. |
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Int16) |
Převede reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na 16bitový ekvivalent celého čísla. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný. |
TryParse(String, NumberStyles, IFormatProvider, Int16) |
Převede řetězcovou reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho 16bitový ekvivalent celého čísla. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný. |
TryParse(ReadOnlySpan<Byte>, IFormatProvider, Int16)
- Zdroj:
- Int16.cs
- Zdroj:
- Int16.cs
Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, IFormatProvider ^ provider, [Runtime::InteropServices::Out] short % result) = IUtf8SpanParsable<short>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, IFormatProvider? provider, out short result);
static member TryParse : ReadOnlySpan<byte> * IFormatProvider * int16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), provider As IFormatProvider, ByRef result As Short) As Boolean
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Rozsah znaků UTF-8 pro analýzu.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o utf8Text
.
- result
- Int16
Při vrácení obsahuje výsledek úspěšné analýzy utf8Text
nebo nedefinovanou hodnotu při selhání.
Návraty
true
, pokud se utf8Text
úspěšně parsoval; jinak false
.
Platí pro
TryParse(ReadOnlySpan<Char>, Int16)
- Zdroj:
- Int16.cs
- Zdroj:
- Int16.cs
- Zdroj:
- Int16.cs
Převede reprezentaci čísla ve formátu specifickém pro jazykovou verzi na 16bitové celé číslo podepsaného ekvivalentem. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.
public:
static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] short % result);
public static bool TryParse (ReadOnlySpan<char> s, out short result);
static member TryParse : ReadOnlySpan<char> * int16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As Short) As Boolean
Parametry
- s
- ReadOnlySpan<Char>
Rozsah obsahující znaky, které představují číslo k převodu.
- result
- Int16
Pokud tato metoda vrátí, obsahuje 16bitovou celočíselnou hodnotu odpovídající číslu obsaženému v s
, pokud převod proběhl úspěšně nebo nula v případě selhání převodu. Převod selže, pokud je parametr s
null
nebo Empty nebo představuje číslo menší než Int16.MinValue nebo větší než Int16.MaxValue. Tento parametr je předán neinicializovaný; všechny hodnoty původně zadané v result
budou přepsány.
Návraty
true
, pokud byl s
úspěšně převeden; jinak false
.
Platí pro
TryParse(String, Int16)
- Zdroj:
- Int16.cs
- Zdroj:
- Int16.cs
- Zdroj:
- Int16.cs
Převede řetězcové vyjádření čísla na jeho 16bitové celé číslo se znaky. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.
public:
static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] short % result);
public static bool TryParse (string s, out short result);
public static bool TryParse (string? s, out short result);
static member TryParse : string * int16 -> bool
Public Shared Function TryParse (s As String, ByRef result As Short) As Boolean
Parametry
- s
- String
Řetězec obsahující číslo, které chcete převést.
- result
- Int16
Pokud tato metoda vrátí, obsahuje 16bitovou celočíselnou hodnotu odpovídající číslu obsaženému v s
, pokud převod proběhl úspěšně nebo nula v případě selhání převodu. Převod selže, pokud je parametr s
null
nebo Empty, není ve správném formátu nebo představuje číslo menší než Int16.MinValue nebo větší než Int16.MaxValue. Tento parametr je předán neinicializovaný; všechny hodnoty původně zadané v result
budou přepsány.
Návraty
true
, pokud byl s
úspěšně převeden; jinak false
.
Příklady
Následující příklad volá metodu Int16.TryParse(String, Int16) s několika různými řetězcovými hodnotami.
using System;
public class StringParsing
{
public static void Main()
{
TryToParse(null);
TryToParse("16051");
TryToParse("9432.0");
TryToParse("16,667");
TryToParse(" -322 ");
TryToParse("+4302");
TryToParse("(100);");
TryToParse("01FA");
}
private static void TryToParse(string value)
{
short number;
bool result = Int16.TryParse(value, out number);
if (result)
{
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 '16051' to 16051.
// 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 Int16.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 "16051"
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 '16051' to 16051.
// 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("16051")
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 Int16
Dim result As Boolean = Int16.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 '16051' to 16051.
' 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.
Některé řetězce, které metoda TryParse(String, Int16) nemůže převést v tomto příkladu, jsou:
"9432.0". Převod selže, protože řetězec nemůže obsahovat oddělovač desetinných míst; musí obsahovat pouze integrální číslice.
"16,667". Převod selže, protože řetězec nemůže obsahovat oddělovače skupin; musí obsahovat pouze integrální číslice.
"(100)". Převod selže, protože řetězec nemůže obsahovat jiné záporné znaménko než ten definovaný NumberFormatInfo.NegativeSign aktuální jazykové verze a vlastnosti NumberFormatInfo.NumberNegativePattern.
"01FA". Převod selže, protože řetězec nemůže obsahovat šestnáctkové číslice; musí obsahovat pouze desítkové číslice.
Poznámky
Metoda Int16.TryParse(String, Int16) se liší od metody Int16.Parse(String) vrácením logické hodnoty, která označuje, zda byla operace analýzy úspěšná místo vrácení analyzované Int16 hodnoty. Eliminuje potřebu použití zpracování výjimek k otestování FormatException v případě, že s
je neplatný a nelze jej úspěšně analyzovat.
Parametr s
by měl být řetězcovou reprezentací čísla ve formuláři:
[ws] [sign]digits[ws]
Položky v hranatých závorkách ([ a ]) jsou volitelné. Následující tabulka popisuje jednotlivé prvky.
Element | Popis |
---|---|
ws | Volitelné prázdné znaky. |
znaménko |
Volitelné znaménko. |
číslice | Posloupnost číslic v rozsahu od 0 do 9 |
Parametr s
se interpretuje pomocí stylu NumberStyles.Integer. Kromě desetinných číslic jsou povoleny pouze úvodní a koncové mezery společně s počátečním symbolem. Chcete-li explicitně definovat prvky stylu společně s informacemi o formátování specifické pro jazykovou verzi, které mohou být přítomny v s
, použijte metodu Int16.TryParse(String, NumberStyles, IFormatProvider, Int16).
Parametr s
se analyzuje pomocí informací o formátování v objektu NumberFormatInfo inicializovaném pro aktuální jazykovou verzi systému. Další informace najdete v tématu CurrentInfo.
Toto přetížení metody TryParse interpretuje všechny číslice v parametru s
jako desítkové číslice. Chcete-li parsovat řetězcovou reprezentaci šestnáctkového čísla, zavolejte Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) přetížení.
Viz také
- Parse(String)
- ToString()
- analýza číselných řetězců v rozhraní .NET
- Ukázka : rozhraní .NET Core WinForms (C#)
- ukázka : .NET Core WinForms Formatting Utility (Visual Basic)
Platí pro
TryParse(ReadOnlySpan<Char>, IFormatProvider, Int16)
- Zdroj:
- Int16.cs
- Zdroj:
- Int16.cs
- Zdroj:
- Int16.cs
Pokusí se analyzovat rozsah znaků do hodnoty.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] short % result) = ISpanParsable<short>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out short result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * int16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As Short) As Boolean
Parametry
- s
- ReadOnlySpan<Char>
Rozsah znaků, které se mají analyzovat.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o s
.
- result
- Int16
Pokud tato metoda vrátí, obsahuje výsledek úspěšné analýzy s
, nebo nedefinovanou hodnotu při selhání.
Návraty
true
, pokud se s
úspěšně parsoval; jinak false
.
Platí pro
TryParse(String, IFormatProvider, Int16)
- Zdroj:
- Int16.cs
- Zdroj:
- Int16.cs
- Zdroj:
- Int16.cs
Pokusí se analyzovat řetězec do hodnoty.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] short % result) = IParsable<short>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out short result);
static member TryParse : string * IFormatProvider * int16 -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As Short) As Boolean
Parametry
- s
- String
Řetězec, který se má analyzovat.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o s
.
- result
- Int16
Pokud tato metoda vrátí, obsahuje výsledek úspěšné analýzy s
nebo nedefinovanou hodnotu při selhání.
Návraty
true
, pokud se s
úspěšně parsoval; jinak false
.
Platí pro
TryParse(ReadOnlySpan<Byte>, NumberStyles, IFormatProvider, Int16)
- Zdroj:
- Int16.cs
- Zdroj:
- Int16.cs
Pokusí se analyzovat rozsah znaků UTF-8 do hodnoty.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] short % result) = System::Numerics::INumberBase<short>::TryParse;
public static bool TryParse (ReadOnlySpan<byte> utf8Text, System.Globalization.NumberStyles style, IFormatProvider? provider, out short result);
static member TryParse : ReadOnlySpan<byte> * System.Globalization.NumberStyles * IFormatProvider * int16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), style As NumberStyles, provider As IFormatProvider, ByRef result As Short) As Boolean
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Rozsah znaků UTF-8 pro analýzu.
- style
- NumberStyles
Bitové kombinace stylů čísel, které mohou být přítomny v utf8Text
.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o utf8Text
.
- result
- Int16
Při vrácení obsahuje výsledek úspěšné analýzy utf8Text
nebo nedefinovanou hodnotu při selhání.
Návraty
true
, pokud se utf8Text
úspěšně parsoval; jinak false
.
Platí pro
TryParse(ReadOnlySpan<Byte>, Int16)
- Zdroj:
- Int16.cs
- Zdroj:
- Int16.cs
Pokusí se převést rozsah znaků UTF-8 obsahující řetězcovou reprezentaci čísla na jeho 16bitový ekvivalent celého čísla.
public:
static bool TryParse(ReadOnlySpan<System::Byte> utf8Text, [Runtime::InteropServices::Out] short % result);
public static bool TryParse (ReadOnlySpan<byte> utf8Text, out short result);
static member TryParse : ReadOnlySpan<byte> * int16 -> bool
Public Shared Function TryParse (utf8Text As ReadOnlySpan(Of Byte), ByRef result As Short) As Boolean
Parametry
- utf8Text
- ReadOnlySpan<Byte>
Rozsah obsahující znaky UTF-8 představující číslo, které se má převést.
- result
- Int16
Pokud tato metoda vrátí, obsahuje 16bitovou celočíselnou hodnotu odpovídající číslu obsaženému v utf8Text
pokud převod proběhl úspěšně, nebo nula v případě selhání převodu. Tento parametr je předán neinicializovaný; jakákoli hodnota původně zadaná ve výsledku se přepíše.
Návraty
true
, pokud byl utf8Text
úspěšně převeden; jinak false
.
Platí pro
TryParse(ReadOnlySpan<Char>, NumberStyles, IFormatProvider, Int16)
- Zdroj:
- Int16.cs
- Zdroj:
- Int16.cs
- Zdroj:
- Int16.cs
Převede reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na 16bitový ekvivalent celého čísla. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] short % result);
public:
static bool TryParse(ReadOnlySpan<char> s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] short % result) = System::Numerics::INumberBase<short>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider? provider, out short result);
public static bool TryParse (ReadOnlySpan<char> s, System.Globalization.NumberStyles style, IFormatProvider provider, out short result);
static member TryParse : ReadOnlySpan<char> * System.Globalization.NumberStyles * IFormatProvider * int16 -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), style As NumberStyles, provider As IFormatProvider, ByRef result As Short) As Boolean
Parametry
- s
- ReadOnlySpan<Char>
Rozsah obsahující znaky představující číslo, které se má převést. Rozsah se interpretuje pomocí stylu určeného style
.
- style
- NumberStyles
Bitová kombinace hodnot výčtu, která označuje prvky stylu, které mohou být přítomny v s
. Typická hodnota pro zadání je Integer.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o s
.
- result
- Int16
Pokud tato metoda vrátí, obsahuje 16bitovou celočíselnou hodnotu odpovídající číslu obsaženému v s
, pokud převod proběhl úspěšně nebo nula v případě selhání převodu. Převod selže, pokud je parametr s
null
nebo Empty, není ve formátu kompatibilním s style
nebo představuje číslo menší než Int16.MinValue nebo větší než Int16.MaxValue. Tento parametr je předán neinicializovaný; všechny hodnoty původně zadané v result
budou přepsány.
Návraty
true
, pokud byl s
úspěšně převeden; jinak false
.
Platí pro
TryParse(String, NumberStyles, IFormatProvider, Int16)
- Zdroj:
- Int16.cs
- Zdroj:
- Int16.cs
- Zdroj:
- Int16.cs
Převede řetězcovou reprezentaci čísla v zadaném stylu a formátu specifickém pro jazykovou verzi na jeho 16bitový ekvivalent celého čísla. Vrácená hodnota označuje, jestli byl převod úspěšný nebo neúspěšný.
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] short % result);
public:
static bool TryParse(System::String ^ s, System::Globalization::NumberStyles style, IFormatProvider ^ provider, [Runtime::InteropServices::Out] short % result) = System::Numerics::INumberBase<short>::TryParse;
public static bool TryParse (string s, System.Globalization.NumberStyles style, IFormatProvider provider, out short result);
public static bool TryParse (string? s, System.Globalization.NumberStyles style, IFormatProvider? provider, out short result);
static member TryParse : string * System.Globalization.NumberStyles * IFormatProvider * int16 -> bool
Public Shared Function TryParse (s As String, style As NumberStyles, provider As IFormatProvider, ByRef result As Short) As Boolean
Parametry
- s
- String
Řetězec obsahující číslo, které chcete převést. Řetězec se interpretuje pomocí stylu určeného style
.
- style
- NumberStyles
Bitová kombinace hodnot výčtu, která označuje prvky stylu, které mohou být přítomny v s
. Typická hodnota pro zadání je Integer.
- provider
- IFormatProvider
Objekt, který poskytuje informace o formátování specifické pro jazykovou verzi o s
.
- result
- Int16
Pokud tato metoda vrátí, obsahuje 16bitovou celočíselnou hodnotu odpovídající číslu obsaženému v s
, pokud převod proběhl úspěšně nebo nula v případě selhání převodu. Převod selže, pokud je parametr s
null
nebo Empty, není ve formátu kompatibilním s style
nebo představuje číslo menší než Int16.MinValue nebo větší než Int16.MaxValue. Tento parametr je předán neinicializovaný; všechny hodnoty původně zadané v result
budou přepsány.
Návraty
true
, pokud byl s
úspěšně převeden; jinak false
.
Výjimky
Příklady
Následující příklad volá metodu Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) s několika různými řetězcovými hodnotami.
using System;
using System.Globalization;
public class StringParsing
{
public static void Main()
{
string numericString;
NumberStyles styles;
numericString = "10677";
styles = NumberStyles.Integer;
CallTryParse(numericString, styles);
numericString = "-30677";
styles = NumberStyles.None;
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)
{
short number;
bool result = Int16.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 to the console:
// Converted '10677' to 10677.
// Attempted conversion of '-30677' failed.
// 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 -32575.
// Attempted conversion of '0x80C1' failed.
open System
open System.Globalization
let callTryParse (stringToConvert: string) (styles: NumberStyles) =
match Int16.TryParse(stringToConvert, styles, CultureInfo.InvariantCulture) with
| true, number ->
printfn $"Converted '{stringToConvert}' to {number}."
| _ ->
printfn $"Attempted conversion of '{stringToConvert}' failed."
[<EntryPoint>]
let main _ =
let numericString = "10677"
let styles = NumberStyles.Integer
callTryParse numericString styles
let numericString = "-30677"
let styles = NumberStyles.None
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 '10677' to 10677.
// Attempted conversion of '-30677' failed.
// 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 -32575.
// Attempted conversion of '0x80C1' failed.
Imports System.Globalization
Module StringParsing
Public Sub Main()
Dim numericString As String
Dim styles As NumberStyles
numericString = "10677"
styles = NumberStyles.Integer
CallTryParse(numericString, styles)
numericString = "-30677"
styles = NumberStyles.None
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 Short
Dim result As Boolean = Int16.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 '10677' to 10677.
' Attempted conversion of '-30677' failed.
' 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 -32575.
' Attempted conversion of '0x80C1' failed.
Poznámky
Metoda Int16.TryParse(String, NumberStyles, IFormatProvider, Int16) se liší od metody Int16.Parse(String, NumberStyles, IFormatProvider) vrácením logické hodnoty, která označuje, zda byla operace analýzy úspěšná místo vrácení analyzované Int16 hodnoty. Eliminuje potřebu použití zpracování výjimek k otestování FormatException v případě, že s
je neplatný a nelze jej úspěšně analyzovat.
Parametr style
definuje prvky stylu (například prázdné znaky nebo kladné nebo záporné znaménko), které jsou povoleny v parametru s
, aby operace analýzy byla úspěšná. Musí se jednat o kombinaci bitových příznaků z NumberStyles výčtu. V závislosti na hodnotě stylu může parametr s
obsahovat následující prvky:
[ws] [$] [znaménko] [digits,]digits[.fractional_digits][e[sign]digits][ws]
Nebo pokud parametr style
obsahuje NumberStyles.AllowHexSpecifier:
[ws]hexdigits[ws]
Položky v hranatých závorkách ([ a ]) jsou volitelné. Následující tabulka popisuje jednotlivé prvky.
Element | Popis |
---|---|
ws | Volitelné prázdné znaky. Prázdné znaky se můžou objevit na začátku s , pokud style obsahuje příznak NumberStyles.AllowLeadingWhite nebo na konci s , pokud style obsahuje příznak NumberStyles.AllowTrailingWhite. |
$ | Symbol měny specifický pro jazykovou verzi. Jeho pozice v řetězci je definována CurrencyPositivePattern vlastnost objektu NumberFormatInfo vrácenou GetFormat metodou parametru provider . Symbol měny se může zobrazit v s , pokud style obsahuje příznak NumberStyles.AllowCurrencySymbol. |
znaménko |
Volitelné znaménko. |
číslice | Posloupnost číslic od 0 do 9. |
, | Oddělovač tisíců specifických pro jazykovou verzi. Oddělovač tisíců jazykové verze určené provider se může objevit v s , pokud style obsahuje příznak NumberStyles.AllowThousands. |
. | Symbol desetinné čárky specifické pro jazykovou verzi. Symbol desetinné čárky jazykové verze určené provider se může objevit v s , pokud style obsahuje příznak NumberStyles.AllowDecimalPoint. |
fractional_digits | Jeden nebo více výskytů číslice 0. Desetinná číslice se můžou v s zobrazovat jenom v případě, že style obsahuje příznak NumberStyles.AllowDecimalPoint. |
e | Znak "e" nebo "E", který označuje, že hodnota je reprezentována exponenciálním zápisem. Parametr s může představovat číslo v exponenciálním zápisu, pokud style obsahuje příznak NumberStyles.AllowExponent. |
šestnáctkové | Posloupnost šestnáctkových číslic od 0 do f nebo 0 až F. |
Poznámka
Všechny ukončující NUL (U+0000) znaky v s
jsou ignorovány operací analýzy bez ohledu na hodnotu argumentu style
.
Řetězec s desetinnými číslicemi (který odpovídá příznaku NumberStyles.None) se vždy úspěšně parsuje. Většina zbývajících NumberStyles členů ovládací prvky, které mohou být, ale nemusí být přítomny v tomto vstupním řetězci. Následující tabulka uvádí, jak jednotlivé NumberStyles členy ovlivňují prvky, které mohou být přítomny v s
.
Neseparované hodnoty NumberStyles | Prvky povolené v s kromě číslic |
---|---|
NumberStyles.None | Pouze desítkové číslice. |
NumberStyles.AllowDecimalPoint |
. prvky a fractional_digits. Nicméně, fractional_digits se musí skládat pouze z jedné nebo více 0 číslic nebo metoda vrací false . |
NumberStyles.AllowExponent | Parametr s může také použít exponenciální zápis. Pokud s představuje číslo v exponenciálním zápisu, musí představovat celé číslo v rozsahu Int16 datového typu bez nenulové desetinné komponenty. |
NumberStyles.AllowLeadingWhite | Element ws |
NumberStyles.AllowTrailingWhite | Prvek |
NumberStyles.AllowLeadingSign | Znak se může zobrazit před číslicemi. |
NumberStyles.AllowTrailingSign | Znak se může zobrazit po číslicích. |
NumberStyles.AllowParentheses | Znak prvek ve formě závorek ohraničující číselnou hodnotu. |
NumberStyles.AllowThousands | Prvek ,. |
NumberStyles.AllowCurrencySymbol | Prvek $. |
NumberStyles.Currency | Všechny prvky. Parametr s nemůže představovat šestnáctkové číslo nebo číslo v exponenciálním zápisu. |
NumberStyles.Float | Prvek ws na začátku nebo konci s , znak na začátku s a . symbol. Parametr s může také použít exponenciální zápis. |
NumberStyles.Number | Prvky ws, znaménko, oddělovač tisíců (,) a desetinná čárka (.). |
NumberStyles.Any | Všechny styly s výjimkou s nemohou představovat šestnáctkové číslo. |
Pokud se použije příznak NumberStyles.AllowHexSpecifier, s
musí být šestnáctková hodnota bez předpony. Například "9AF3" se úspěšně parsuje, ale "0x9AF3" ne. Jedinými dalšími příznaky, které mohou být přítomné v style
, jsou NumberStyles.AllowLeadingWhite a NumberStyles.AllowTrailingWhite. (Výčet NumberStyles má složený styl, NumberStyles.HexNumber, který obsahuje oba příznaky prázdných znaků.)
Parametr provider
je IFormatProvider implementace, například objekt CultureInfo nebo objekt NumberFormatInfo, jehož GetFormat metoda vrací objekt NumberFormatInfo. Objekt NumberFormatInfo poskytuje informace specifické pro jazykovou verzi formátu s
. Pokud je provider
null
, použije se objekt NumberFormatInfo pro aktuální jazykovou verzi.
Viz také
- Parse
- NumberStyles
- ToString()
- analýza číselných řetězců v rozhraní .NET