Convert.ToSByte Methode
Definition
Konvertiert einen angegebenen Wert in eine 8-Bit-Ganzzahl mit Vorzeichen.Converts a specified value to an 8-bit signed integer.
Überlädt
ToSByte(SByte) |
Gibt die angegebene 8-Bit-Ganzzahl mit Vorzeichen zurück. Es wird keine wirkliche Konvertierung durchgeführt.Returns the specified 8-bit signed integer; no actual conversion is performed. |
ToSByte(String, Int32) |
Konvertiert die Zeichenfolgendarstellung einer Zahl in einer angegebenen Basis in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the string representation of a number in a specified base to an equivalent 8-bit signed integer. |
ToSByte(String, IFormatProvider) |
Konvertiert die angegebene Zeichenfolgendarstellung einer Zahl unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen in die entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the specified string representation of a number to an equivalent 8-bit signed integer, using the specified culture-specific formatting information. |
ToSByte(Object, IFormatProvider) |
Konvertiert den Wert des angegebenen Objekts unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen in eine 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified object to an 8-bit signed integer, using the specified culture-specific formatting information. |
ToSByte(UInt64) |
Konvertiert den Wert der angegebenen 64-Bit-Ganzzahl ohne Vorzeichen in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified 64-bit unsigned integer to an equivalent 8-bit signed integer. |
ToSByte(UInt32) |
Konvertiert den Wert der angegebenen 32-Bit-Ganzzahl ohne Vorzeichen in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified 32-bit unsigned integer to an equivalent 8-bit signed integer. |
ToSByte(String) |
Konvertiert die angegebene Zeichenfolgendarstellung einer Zahl in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the specified string representation of a number to an equivalent 8-bit signed integer. |
ToSByte(Single) |
Konvertiert den Wert der angegebenen Gleitkommazahl mit einfacher Genauigkeit in die entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified single-precision floating-point number to an equivalent 8-bit signed integer. |
ToSByte(Object) |
Konvertiert den Wert des angegebenen Objekts in eine 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified object to an 8-bit signed integer. |
ToSByte(UInt16) |
Konvertiert den Wert der angegebenen 16-Bit-Ganzzahl ohne Vorzeichen in die entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified 16-bit unsigned integer to the equivalent 8-bit signed integer. |
ToSByte(Int32) |
Konvertiert den Wert der angegebenen 32-Bit-Ganzzahl mit Vorzeichen in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified 32-bit signed integer to an equivalent 8-bit signed integer. |
ToSByte(Int64) |
Konvertiert den Wert der angegebenen 64-Bit-Ganzzahl mit Vorzeichen in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified 64-bit signed integer to an equivalent 8-bit signed integer. |
ToSByte(Byte) |
Konvertiert den Wert der angegebenen 8-Bit-Ganzzahl ohne Vorzeichen in die entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified 8-bit unsigned integer to the equivalent 8-bit signed integer. |
ToSByte(Char) |
Konvertiert den Wert des angegebenen Unicode-Zeichens in die entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified Unicode character to the equivalent 8-bit signed integer. |
ToSByte(DateTime) |
Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.Calling this method always throws InvalidCastException. |
ToSByte(Boolean) |
Konvertiert den angegebenen booleschen Wert in die entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the specified Boolean value to the equivalent 8-bit signed integer. |
ToSByte(Double) |
Konvertiert den Wert der angegebenen Gleitkommazahl mit doppelter Genauigkeit in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified double-precision floating-point number to an equivalent 8-bit signed integer. |
ToSByte(Int16) |
Konvertiert den Wert der angegebenen 16-Bit-Ganzzahl mit Vorzeichen in die entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified 16-bit signed integer to the equivalent 8-bit signed integer. |
ToSByte(Decimal) |
Konvertiert den Wert der angegebenen Dezimalzahl in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified decimal number to an equivalent 8-bit signed integer. |
ToSByte(SByte)
Wichtig
Diese API ist nicht CLS-kompatibel.
Gibt die angegebene 8-Bit-Ganzzahl mit Vorzeichen zurück. Es wird keine wirkliche Konvertierung durchgeführt.Returns the specified 8-bit signed integer; no actual conversion is performed.
public:
static System::SByte ToSByte(System::SByte value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (sbyte value);
static member ToSByte : sbyte -> sbyte
Public Shared Function ToSByte (value As SByte) As SByte
Parameter
- value
- SByte
Die zurückzugebende 8-Bit-Ganzzahl mit Vorzeichen.The 8-bit signed integer to return.
Gibt zurück
value
wird unverändert zurückgegeben.value
is returned unchanged.
- Attribute
ToSByte(String, Int32)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert die Zeichenfolgendarstellung einer Zahl in einer angegebenen Basis in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the string representation of a number in a specified base to an equivalent 8-bit signed integer.
public:
static System::SByte ToSByte(System::String ^ value, int fromBase);
[System.CLSCompliant(false)]
public static sbyte ToSByte (string value, int fromBase);
static member ToSByte : string * int -> sbyte
Public Shared Function ToSByte (value As String, fromBase As Integer) As SByte
Parameter
- value
- String
Eine Zeichenfolge, die die zu konvertierende Zahl enthält.A string that contains the number to convert.
- fromBase
- Int32
Die Basis der Zahl in value
, die 2, 8, 10 oder 16 sein muss.The base of the number in value
, which must be 2, 8, 10, or 16.
Gibt zurück
Eine 8-Bit-Ganzzahl mit Vorzeichen, die der Zahl in value
entspricht, oder 0 (null), wenn value
gleich null
ist.An 8-bit signed integer that is equivalent to the number in value
, or 0 (zero) if value
is null
.
- Attribute
Ausnahmen
fromBase
ist nicht 2, 8, 10 oder 16.fromBase
is not 2, 8, 10, or 16.
- oder --or-
value
, der eine nicht zur Basis 10 gehörende Zahl mit Vorzeichen darstellt, weist ein negatives Vorzeichen als Präfix auf.value
, which represents a non-base 10 signed number, is prefixed with a negative sign.
value
enthält ein Zeichen, das in der von fromBase
angegebenen Basis keine gültige Ziffer ist.value
contains a character that is not a valid digit in the base specified by fromBase
. Die Ausnahmemeldung gibt an, dass keine zu konvertierenden Ziffern vorhanden sind, wenn das erste Zeichen in value
ungültig ist. Andernfalls gibt die Meldung an, dass value
ungültige nachfolgende Zeichen enthält.The exception message indicates that there are no digits to convert if the first character in value
is invalid; otherwise, the message indicates that value
contains invalid trailing characters.
value
, der eine nicht zur Basis 10 gehörende Zahl mit Vorzeichen darstellt, weist ein negatives Vorzeichen als Präfix auf.value
, which represents a non-base 10 signed number, is prefixed with a negative sign.
- oder --or-
value
stellt eine Zahl dar, die kleiner als MinValue oder größer als MaxValue ist.value
represents a number that is less than MinValue or greater than MaxValue.
Beispiele
Im folgenden Beispiel wird versucht, die Elemente in einem Zeichen folgen Array als binäre, oktale und hexadezimale Darstellung numerischer Werte zu interpretieren, um Sie in nicht signierte Bytes zu konvertieren.The following example attempts to interpret the elements in a string array as the binary, octal, and hexadecimal representation of numeric values in order to convert them to unsigned bytes.
using System;
public class Example
{
public static void Main()
{
int[] baseValues = { 2, 8, 16};
string[] values = { "FF", "81", "03", "11", "8F", "01", "1C", "111",
"123", "18A" };
// Convert to each supported base.
foreach (int baseValue in baseValues)
{
Console.WriteLine("Converting strings in base {0}:", baseValue);
foreach (string value in values)
{
Console.Write(" '{0,-5} --> ", value + "'");
try {
Console.WriteLine(Convert.ToSByte(value, baseValue));
}
catch (FormatException) {
Console.WriteLine("Bad Format");
}
catch (OverflowException) {
Console.WriteLine("Out of Range");
}
}
Console.WriteLine();
}
}
}
// The example displays the following output:
// Converting strings in base 2:
// 'FF' --> Bad Format
// '81' --> Bad Format
// '03' --> Bad Format
// '11' --> 3
// '8F' --> Bad Format
// '01' --> 1
// '1C' --> Bad Format
// '111' --> 7
// '123' --> Bad Format
// '18A' --> Bad Format
//
// Converting strings in base 8:
// 'FF' --> Bad Format
// '81' --> Bad Format
// '03' --> 3
// '11' --> 9
// '8F' --> Bad Format
// '01' --> 1
// '1C' --> Bad Format
// '111' --> 73
// '123' --> 83
// '18A' --> Bad Format
//
// Converting strings in base 16:
// 'FF' --> -1
// '81' --> -127
// '03' --> 3
// '11' --> 17
// '8F' --> -113
// '01' --> 1
// '1C' --> 28
// '111' --> Out of Range
// '123' --> Out of Range
// '18A' --> Out of Range
Module Example
Public Sub Main()
Dim bases() As Integer = { 2, 8, 16}
Dim values() As String = { "FF", "81", "03", "11", "8F", "01", "1C", _
"111", "123", "18A" }
' Convert to each supported base.
For Each base As Integer In bases
Console.WriteLine("Converting strings in base {0}:", base)
For Each value As String In values
Console.Write(" '{0,-5} --> ", value + "'")
Try
Console.WriteLine(Convert.ToSByte(value, base))
Catch e As FormatException
Console.WriteLine("Bad Format")
Catch e As OverflowException
Console.WriteLine("Out of Range")
End Try
Next
Console.WriteLine()
Next
End Sub
End Module
' The example displays the following output:
' Converting strings in base 2:
' 'FF' --> Bad Format
' '81' --> Bad Format
' '03' --> Bad Format
' '11' --> 3
' '8F' --> Bad Format
' '01' --> 1
' '1C' --> Bad Format
' '111' --> 7
' '123' --> Bad Format
' '18A' --> Bad Format
'
' Converting strings in base 8:
' 'FF' --> Bad Format
' '81' --> Bad Format
' '03' --> 3
' '11' --> 9
' '8F' --> Bad Format
' '01' --> 1
' '1C' --> Bad Format
' '111' --> 73
' '123' --> 83
' '18A' --> Bad Format
'
' Converting strings in base 16:
' 'FF' --> -1
' '81' --> -127
' '03' --> 3
' '11' --> 17
' '8F' --> -113
' '01' --> 1
' '1C' --> 28
' '111' --> Out of Range
' '123' --> Out of Range
' '18A' --> Out of Range
Hinweise
Wenn fromBase
16 ist, können Sie die durch den value
-Parameter angegebene Zahl mit "0x" oder "0x" als Präfix versehen.If fromBase
is 16, you can prefix the number specified by the value
parameter with "0x" or "0X".
Da das negative Vorzeichen für numerische Darstellungen ohne Basis 10 nicht unterstützt wird, geht die ToSByte(String, Int32)-Methode davon aus, dass negative Zahlen eine zwei Komplement Darstellung verwenden.Because the negative sign is not supported for non-base 10 numeric representations, the ToSByte(String, Int32) method assumes that negative numbers use two's complement representation. Anders ausgedrückt: die-Methode interpretiert immer das höherwertige Bit eines Byte (Bit 7) als Vorzeichen-Bit.In other words, the method always interprets the high-order bit of a byte (bit 7) as its sign bit. Folglich ist es möglich, Code zu schreiben, in dem eine nicht-Base-10-Zahl außerhalb des Bereichs des SByte-Datentyps in einen SByte-Wert konvertiert wird, ohne dass die Methode eine Ausnahme auslöst.As a result, it is possible to write code in which a non-base 10 number that is out of the range of the SByte data type is converted to an SByte value without the method throwing an exception. Im folgenden Beispiel wird MaxValue in die hexadezimale Zeichen folgen Darstellung konvertiert und dann die ToSByte(String, Int32)-Methode aufgerufen.The following example converts MaxValue to its hexadecimal string representation, and then calls the ToSByte(String, Int32) method. Anstatt eine Ausnahme auszulösen, zeigt die Methode die Meldung "0xFF konvertiert in-1" an.Instead of throwing an exception, the method displays the message, "0xff converts to -1."
// Create a hexadecimal value out of range of the SByte type.
string value = Convert.ToString(byte.MaxValue, 16);
// Convert it back to a number.
try
{
sbyte number = Convert.ToSByte(value, 16);
Console.WriteLine("0x{0} converts to {1}.", value, number);
}
catch (OverflowException)
{
Console.WriteLine("Unable to convert '0x{0}' to a signed byte.", value);
}
' Create a hexadecimal value out of range of the SByte type.
Dim value As String = Convert.ToString(Byte.MaxValue, 16)
' Convert it back to a number.
Try
Dim number As SByte = Convert.ToSByte(value, 16)
Console.WriteLine("0x{0} converts to {1}.", value, number)
Catch e As OverflowException
Console.WriteLine("Unable to convert '0x{0}' to a signed byte.", value)
End Try
Beim Durchführen von binären Vorgängen oder numerischen Konvertierungen liegt es immer in der Verantwortung des Entwicklers, zu überprüfen, ob eine Methode die entsprechende numerische Darstellung verwendet, um einen bestimmten Wert zu interpretieren.When performing binary operations or numeric conversions, it is always the responsibility of the developer to verify that a method is using the appropriate numeric representation to interpret a particular value. Wie im folgenden Beispiel veranschaulicht, können Sie sicherstellen, dass die-Methode Überläufe ordnungsgemäß behandelt, indem Sie zuerst bestimmen, ob ein Wert einen unsignierten oder einen signierten Typ darstellt, wenn Sie ihn in die hexadezimale Zeichen folgen Darstellung umwandelt.As the following example illustrates, you can ensure that the method handles overflows appropriately by first determining whether a value represents an unsigned or a signed type when converting it to its hexadecimal string representation. Lösen Sie eine Ausnahme aus, wenn der ursprüngliche Wert ein nicht signierter Typ war, aber die Konvertierung zurück in ein signiertes Byte einen Wert ergibt, dessen Signier Bit auf on gesetzt ist.Throw an exception if the original value was an unsigned type but the conversion back to a signed byte yields a value whose sign bit is on.
// Create a hexadecimal value out of range of the SByte type.
byte sourceNumber = byte.MaxValue;
bool isSigned = Math.Sign(Convert.ToDouble(sourceNumber.GetType().GetField("MinValue").GetValue(null))) == -1;
string value = Convert.ToString(sourceNumber, 16);
sbyte targetNumber;
try
{
targetNumber = Convert.ToSByte(value, 16);
if (! isSigned && ((targetNumber & 0x80) != 0))
throw new OverflowException();
else
Console.WriteLine("0x{0} converts to {1}.", value, targetNumber);
}
catch (OverflowException)
{
Console.WriteLine("Unable to convert '0x{0}' to a signed byte.", value);
}
// Displays the following to the console:
// Unable to convert '0xff' to a signed byte.
' Create a negative hexadecimal value out of range of the Long type.
Dim sourceNumber As Byte = Byte.MaxValue
Dim isSigned As Boolean = Math.Sign(sourceNumber.MinValue) = -1
Dim value As String = Convert.ToString(sourceNumber, 16)
Dim targetNumber As SByte
Try
targetNumber = Convert.ToSByte(value, 16)
If Not isSigned And ((targetNumber And &H80) <> 0) Then
Throw New OverflowException()
Else
Console.WriteLine("0x{0} converts to {1}.", value, targetNumber)
End If
Catch e As OverflowException
Console.WriteLine("Unable to convert '0x{0}' to a signed byte.", value)
End Try
' Displays the following to the console:
' Unable to convert '0xff' to a signed byte.
ToSByte(String, IFormatProvider)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert die angegebene Zeichenfolgendarstellung einer Zahl unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen in die entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the specified string representation of a number to an equivalent 8-bit signed integer, using the specified culture-specific formatting information.
public:
static System::SByte ToSByte(System::String ^ value, IFormatProvider ^ provider);
[System.CLSCompliant(false)]
public static sbyte ToSByte (string value, IFormatProvider provider);
static member ToSByte : string * IFormatProvider -> sbyte
Public Shared Function ToSByte (value As String, provider As IFormatProvider) As SByte
Parameter
- value
- String
Eine Zeichenfolge, die die zu konvertierende Zahl enthält.A string that contains the number to convert.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen bereitstellt.An object that supplies culture-specific formatting information.
Gibt zurück
Eine 8-Bit-Ganzzahl mit Vorzeichen, die value
entspricht.An 8-bit signed integer that is equivalent to value
.
- Attribute
Ausnahmen
value
ist null
.value
is null
.
value
besteht nicht aus einem optionalen Vorzeichen und einer Folge von Ziffern (0 bis 9).value
does not consist of an optional sign followed by a sequence of digits (0 through 9).
value
stellt eine Zahl dar, die kleiner als MinValue oder größer als MaxValue ist.value
represents a number that is less than MinValue or greater than MaxValue.
Beispiele
Im folgenden Beispiel werden Zeichen folgen Darstellungen von SByte-Werten mit der ToSByte
-Methode konvertiert, wobei ein IFormatProvider-Objekt verwendet wird.The following example converts string representations of SByte values with the ToSByte
method, using an IFormatProvider object.
// Example of the Convert::ToSByte( String* ) and
// Convert::ToSByte( String*, IFormatProvider* ) methods.
using namespace System;
using namespace System::Globalization;
const __wchar_t * protoFmt = L"{0,-20}{1,-20}{2}";
// Get the exception type name; remove the namespace prefix.
String^ GetExceptionType( Exception^ ex )
{
String^ exceptionType = ex->GetType()->ToString();
return exceptionType->Substring( exceptionType->LastIndexOf( '.' ) + 1 );
}
void ConvertToSByte( String^ numericStr, IFormatProvider^ provider )
{
Object^ defaultValue;
Object^ providerValue;
// Convert numericStr to SByte without a format provider.
try
{
defaultValue = Convert::ToSByte( numericStr );
}
catch ( Exception^ ex )
{
defaultValue = GetExceptionType( ex );
}
// Convert numericStr to SByte with a format provider.
try
{
providerValue = Convert::ToSByte( numericStr, provider );
}
catch ( Exception^ ex )
{
providerValue = GetExceptionType( ex );
}
Console::WriteLine( gcnew String( protoFmt ), numericStr, defaultValue, providerValue );
}
int main()
{
// Create a NumberFormatInfo object and set several of its
// properties that apply to numbers.
NumberFormatInfo^ provider = gcnew NumberFormatInfo;
// These properties affect the conversion.
provider->NegativeSign = "neg ";
provider->PositiveSign = "pos ";
// These properties do not affect the conversion.
// The input string cannot have decimal and group separators.
provider->NumberDecimalSeparator = ".";
provider->NumberNegativePattern = 0;
Console::WriteLine( "This example of\n"
" Convert::ToSByte( String* ) and \n"
" Convert::ToSByte( String*, IFormatProvider* ) "
"\ngenerates the following output. It converts "
"several strings to \nSByte values, using "
"default formatting or a NumberFormatInfo object.\n" );
Console::WriteLine( gcnew String( protoFmt ), "String to convert", "Default/exception", "Provider/exception" );
Console::WriteLine( gcnew String( protoFmt ), "-----------------", "-----------------", "------------------" );
// Convert strings, with and without an IFormatProvider.
ConvertToSByte( "123", provider );
ConvertToSByte( "+123", provider );
ConvertToSByte( "pos 123", provider );
ConvertToSByte( "-123", provider );
ConvertToSByte( "neg 123", provider );
ConvertToSByte( "123.", provider );
ConvertToSByte( "(123)", provider );
ConvertToSByte( "128", provider );
ConvertToSByte( "-129", provider );
}
/*
This example of
Convert::ToSByte( String* ) and
Convert::ToSByte( String*, IFormatProvider* )
generates the following output. It converts several strings to
SByte values, using default formatting or a NumberFormatInfo object.
String to convert Default/exception Provider/exception
----------------- ----------------- ------------------
123 123 123
+123 123 FormatException
pos 123 FormatException 123
-123 -123 FormatException
neg 123 FormatException -123
123. FormatException FormatException
(123) FormatException FormatException
128 OverflowException OverflowException
-129 OverflowException FormatException
*/
// Example of the Convert.ToSByte( string ) and
// Convert.ToSByte( string, IFormatProvider ) methods.
using System;
using System.Globalization;
class ToSByteProviderDemo
{
static string format = "{0,-20}{1,-20}{2}";
// Get the exception type name; remove the namespace prefix.
static string GetExceptionType( Exception ex )
{
string exceptionType = ex.GetType( ).ToString( );
return exceptionType.Substring(
exceptionType.LastIndexOf( '.' ) + 1 );
}
static void ConvertToSByte( string numericStr,
IFormatProvider provider )
{
object defaultValue;
object providerValue;
// Convert numericStr to SByte without a format provider.
try
{
defaultValue = Convert.ToSByte( numericStr );
}
catch( Exception ex )
{
defaultValue = GetExceptionType( ex );
}
// Convert numericStr to SByte with a format provider.
try
{
providerValue = Convert.ToSByte( numericStr, provider );
}
catch( Exception ex )
{
providerValue = GetExceptionType( ex );
}
Console.WriteLine( format, numericStr,
defaultValue, providerValue );
}
public static void Main( )
{
// Create a NumberFormatInfo object and set several of its
// properties that apply to numbers.
NumberFormatInfo provider = new NumberFormatInfo();
// These properties affect the conversion.
provider.NegativeSign = "neg ";
provider.PositiveSign = "pos ";
// These properties do not affect the conversion.
// The input string cannot have decimal and group separators.
provider.NumberDecimalSeparator = ".";
provider.NumberNegativePattern = 0;
Console.WriteLine("This example of\n" +
" Convert.ToSByte( string ) and \n" +
" Convert.ToSByte( string, IFormatProvider ) " +
"\ngenerates the following output. It converts " +
"several strings to \nSByte values, using " +
"default formatting or a NumberFormatInfo object.\n" );
Console.WriteLine( format, "String to convert",
"Default/exception", "Provider/exception" );
Console.WriteLine( format, "-----------------",
"-----------------", "------------------" );
// Convert strings, with and without an IFormatProvider.
ConvertToSByte( "123", provider );
ConvertToSByte( "+123", provider );
ConvertToSByte( "pos 123", provider );
ConvertToSByte( "-123", provider );
ConvertToSByte( "neg 123", provider );
ConvertToSByte( "123.", provider );
ConvertToSByte( "(123)", provider );
ConvertToSByte( "128", provider );
ConvertToSByte( "-129", provider );
}
}
/*
This example of
Convert.ToSByte( string ) and
Convert.ToSByte( string, IFormatProvider )
generates the following output. It converts several strings to
SByte values, using default formatting or a NumberFormatInfo object.
String to convert Default/exception Provider/exception
----------------- ----------------- ------------------
123 123 123
+123 123 FormatException
pos 123 FormatException 123
-123 -123 FormatException
neg 123 FormatException -123
123. FormatException FormatException
(123) FormatException FormatException
128 OverflowException OverflowException
-129 OverflowException FormatException
*/
' Example of the Convert.ToSByte( String ) and
' Convert.ToSByte( String, IFormatProvider ) methods.
Imports System.Globalization
Module ToSByteProviderDemo
Dim format As String = "{0,-20}{1,-20}{2}"
' Get the exception type name; remove the namespace prefix.
Function GetExceptionType( ex As Exception ) As String
Dim exceptionType As String = ex.GetType( ).ToString( )
Return exceptionType.Substring( _
exceptionType.LastIndexOf( "."c ) + 1 )
End Function
Sub ConvertToSByte( numericStr As String, _
provider As IFormatProvider )
Dim defaultValue As Object
Dim providerValue As Object
' Convert numericStr to SByte without a format provider.
Try
defaultValue = Convert.ToSByte( numericStr )
Catch ex As Exception
defaultValue = GetExceptionType( ex )
End Try
' Convert numericStr to SByte with a format provider.
Try
providerValue = Convert.ToSByte( numericStr, provider )
Catch ex As Exception
providerValue = GetExceptionType( ex )
End Try
Console.WriteLine( format, numericStr, _
defaultValue, providerValue )
End Sub
Sub Main( )
' Create a NumberFormatInfo object and set several of its
' properties that apply to numbers.
Dim provider As NumberFormatInfo = new NumberFormatInfo( )
' These properties affect the conversion.
provider.NegativeSign = "neg "
provider.PositiveSign = "pos "
' These properties do not affect the conversion.
' The input string cannot have decimal and group separators.
provider.NumberDecimalSeparator = "."
provider.NumberNegativePattern = 0
Console.WriteLine( "This example of" & vbCrLf & _
" Convert.ToSByte( String ) and " & vbCrLf & _
" Convert.ToSByte( String, IFormatProvider ) " & _
vbCrLf & "generates the following output. It " & _
"converts several strings to " & vbCrLf & "SByte " & _
"values, using default formatting " & _
"or a NumberFormatInfo object." & vbCrLf )
Console.WriteLine( format, "String to convert", _
"Default/exception", "Provider/exception" )
Console.WriteLine( format, "-----------------", _
"-----------------", "------------------" )
' Convert strings, with and without an IFormatProvider.
ConvertToSByte( "123", provider )
ConvertToSByte( "+123", provider )
ConvertToSByte( "pos 123", provider )
ConvertToSByte( "-123", provider )
ConvertToSByte( "neg 123", provider )
ConvertToSByte( "123.", provider )
ConvertToSByte( "(123)", provider )
ConvertToSByte( "128", provider )
ConvertToSByte( "-129", provider )
End Sub
End Module
' This example of
' Convert.ToSByte( String ) and
' Convert.ToSByte( String, IFormatProvider )
' generates the following output. It converts several strings to
' SByte values, using default formatting or a NumberFormatInfo object.
'
' String to convert Default/exception Provider/exception
' ----------------- ----------------- ------------------
' 123 123 123
' +123 123 FormatException
' pos 123 FormatException 123
' -123 -123 FormatException
' neg 123 FormatException -123
' 123. FormatException FormatException
' (123) FormatException FormatException
' 128 OverflowException OverflowException
' -129 OverflowException FormatException
Hinweise
provider
ist eine IFormatProvider Instanz, die ein NumberFormatInfo-Objekt abruft.provider
is an IFormatProvider instance that obtains a NumberFormatInfo object. Das NumberFormatInfo-Objekt stellt kulturspezifische Informationen zum Format von value
bereit.The NumberFormatInfo object provides culture-specific information about the format of value
. Wenn provider
null
ist, wird der NumberFormatInfo für die aktuelle Kultur verwendet.If provider
is null
, the NumberFormatInfo for the current culture is used.
Wenn eine Ausnahme nicht behandelt werden soll, wenn bei der Konvertierung ein Fehler auftritt, können Sie stattdessen die SByte.TryParse-Methode abrufen.If you prefer not to handle an exception if the conversion fails, you can call the SByte.TryParse method instead. Sie gibt einen Boolean Wert zurück, der angibt, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.It returns a Boolean value that indicates whether the conversion succeeded or failed.
Siehe auch
ToSByte(Object, IFormatProvider)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert den Wert des angegebenen Objekts unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen in eine 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified object to an 8-bit signed integer, using the specified culture-specific formatting information.
public:
static System::SByte ToSByte(System::Object ^ value, IFormatProvider ^ provider);
[System.CLSCompliant(false)]
public static sbyte ToSByte (object value, IFormatProvider provider);
static member ToSByte : obj * IFormatProvider -> sbyte
Public Shared Function ToSByte (value As Object, provider As IFormatProvider) As SByte
Parameter
- value
- Object
Ein Objekt, das die IConvertible-Schnittstelle implementiert.An object that implements the IConvertible interface.
- provider
- IFormatProvider
Ein Objekt, das kulturspezifische Formatierungsinformationen bereitstellt.An object that supplies culture-specific formatting information.
Gibt zurück
Eine 8-Bit-Ganzzahl mit Vorzeichen, die value
entspricht, oder 0 (null), wenn value
gleich null
ist.An 8-bit signed integer that is equivalent to value
, or zero if value
is null
.
- Attribute
Ausnahmen
value
weist kein geeignetes Format auf.value
is not in an appropriate format.
Die IConvertible-Schnittstelle wird von value
nicht implementiert.value
does not implement the IConvertible interface.
- oder --or- Die Konvertierung wird nicht unterstützt.The conversion is not supported.
value
stellt eine Zahl dar, die kleiner als MinValue oder größer als MaxValue ist.value
represents a number that is less than MinValue or greater than MaxValue.
Beispiele
Im folgenden Beispiel wird eine ByteString
Klasse definiert, die sowohl signierte als auch unsignierte Bytes als hexadezimale Zeichen folgen und ein Feld, das das Vorzeichen des Bytes angibt, speichert.The following example defines a ByteString
class that stores both signed and unsigned bytes as hexadecimal strings along with a field that indicates the sign of the byte. Die ByteString
-Klasse implementiert die IConvertible-Schnittstelle.The ByteString
class implements the IConvertible interface. Die IConvertible.ToSByte-Methode ruft die Parse(String, IFormatProvider)-Methode auf, um die Konvertierung auszuführen.Its IConvertible.ToSByte method calls the Parse(String, IFormatProvider) method to perform the conversion. Wenn dies nicht möglich ist, wird ein OverflowExceptionausgelöst.If it fails, it throws an OverflowException.
using System;
using System.Globalization;
public enum SignBit { Negative=-1, Zero=0, Positive=1 };
public struct ByteString : IConvertible
{
private SignBit signBit;
private string byteString;
public SignBit Sign
{
set { signBit = value; }
get { return signBit; }
}
public string Value
{
set {
if (value.Trim().Length > 2)
throw new ArgumentException("The string representation of a byte cannot have more than two characters.");
else
byteString = value;
}
get { return byteString; }
}
// IConvertible implementations.
public TypeCode GetTypeCode() {
return TypeCode.Object;
}
public bool ToBoolean(IFormatProvider provider)
{
if (signBit == SignBit.Zero)
return false;
else
return true;
}
public byte ToByte(IFormatProvider provider)
{
if (signBit == SignBit.Negative)
throw new OverflowException(String.Format("{0} is out of range of the Byte type.", Convert.ToSByte(byteString, 16)));
else
return Byte.Parse(byteString, NumberStyles.HexNumber);
}
public char ToChar(IFormatProvider provider)
{
if (signBit == SignBit.Negative) {
throw new OverflowException(String.Format("{0} is out of range of the Char type.", Convert.ToSByte(byteString, 16)));
}
else {
byte byteValue = Byte.Parse(this.byteString, NumberStyles.HexNumber);
return Convert.ToChar(byteValue);
}
}
public DateTime ToDateTime(IFormatProvider provider)
{
throw new InvalidCastException("ByteString to DateTime conversion is not supported.");
}
public decimal ToDecimal(IFormatProvider provider)
{
if (signBit == SignBit.Negative)
{
sbyte byteValue = SByte.Parse(byteString, NumberStyles.HexNumber);
return Convert.ToDecimal(byteValue);
}
else
{
byte byteValue = Byte.Parse(byteString, NumberStyles.HexNumber);
return Convert.ToDecimal(byteValue);
}
}
public double ToDouble(IFormatProvider provider)
{
if (signBit == SignBit.Negative)
return Convert.ToDouble(SByte.Parse(byteString, NumberStyles.HexNumber));
else
return Convert.ToDouble(Byte.Parse(byteString, NumberStyles.HexNumber));
}
public short ToInt16(IFormatProvider provider)
{
if (signBit == SignBit.Negative)
return Convert.ToInt16(SByte.Parse(byteString, NumberStyles.HexNumber));
else
return Convert.ToInt16(Byte.Parse(byteString, NumberStyles.HexNumber));
}
public int ToInt32(IFormatProvider provider)
{
if (signBit == SignBit.Negative)
return Convert.ToInt32(SByte.Parse(byteString, NumberStyles.HexNumber));
else
return Convert.ToInt32(Byte.Parse(byteString, NumberStyles.HexNumber));
}
public long ToInt64(IFormatProvider provider)
{
if (signBit == SignBit.Negative)
return Convert.ToInt64(SByte.Parse(byteString, NumberStyles.HexNumber));
else
return Convert.ToInt64(Byte.Parse(byteString, NumberStyles.HexNumber));
}
public sbyte ToSByte(IFormatProvider provider)
{
try {
return SByte.Parse(byteString, NumberStyles.HexNumber);
}
catch (OverflowException e) {
throw new OverflowException(String.Format("{0} is outside the range of the SByte type.",
Byte.Parse(byteString, NumberStyles.HexNumber)), e);
}
}
public float ToSingle(IFormatProvider provider)
{
if (signBit == SignBit.Negative)
return Convert.ToSingle(SByte.Parse(byteString, NumberStyles.HexNumber));
else
return Convert.ToSingle(Byte.Parse(byteString, NumberStyles.HexNumber));
}
public string ToString(IFormatProvider provider)
{
return "0x" + this.byteString;
}
public object ToType(Type conversionType, IFormatProvider provider)
{
switch (Type.GetTypeCode(conversionType))
{
case TypeCode.Boolean:
return this.ToBoolean(null);
case TypeCode.Byte:
return this.ToByte(null);
case TypeCode.Char:
return this.ToChar(null);
case TypeCode.DateTime:
return this.ToDateTime(null);
case TypeCode.Decimal:
return this.ToDecimal(null);
case TypeCode.Double:
return this.ToDouble(null);
case TypeCode.Int16:
return this.ToInt16(null);
case TypeCode.Int32:
return this.ToInt32(null);
case TypeCode.Int64:
return this.ToInt64(null);
case TypeCode.Object:
if (typeof(ByteString).Equals(conversionType))
return this;
else
throw new InvalidCastException(String.Format("Conversion to a {0} is not supported.", conversionType.Name));
case TypeCode.SByte:
return this.ToSByte(null);
case TypeCode.Single:
return this.ToSingle(null);
case TypeCode.String:
return this.ToString(null);
case TypeCode.UInt16:
return this.ToUInt16(null);
case TypeCode.UInt32:
return this.ToUInt32(null);
case TypeCode.UInt64:
return this.ToUInt64(null);
default:
throw new InvalidCastException(String.Format("Conversion to {0} is not supported.", conversionType.Name));
}
}
public UInt16 ToUInt16(IFormatProvider provider)
{
if (signBit == SignBit.Negative)
throw new OverflowException(String.Format("{0} is outside the range of the UInt16 type.",
SByte.Parse(byteString, NumberStyles.HexNumber)));
else
return Convert.ToUInt16(Byte.Parse(byteString, NumberStyles.HexNumber));
}
public UInt32 ToUInt32(IFormatProvider provider)
{
if (signBit == SignBit.Negative)
throw new OverflowException(String.Format("{0} is outside the range of the UInt32 type.",
SByte.Parse(byteString, NumberStyles.HexNumber)));
else
return Convert.ToUInt32(Byte.Parse(byteString, NumberStyles.HexNumber));
}
public UInt64 ToUInt64(IFormatProvider provider)
{
if (signBit == SignBit.Negative)
throw new OverflowException(String.Format("{0} is outside the range of the UInt64 type.",
SByte.Parse(byteString, NumberStyles.HexNumber)));
else
return Convert.ToUInt64(Byte.Parse(byteString, NumberStyles.HexNumber));
}
}
Imports System.Globalization
Public Enum SignBit As Integer
Positive = 1
Zero = 0
Negative = -1
End Enum
Public Structure ByteString : Implements IConvertible
Private signBit As SignBit
Private byteString As String
Public Property Sign As SignBit
Set
signBit = value
End Set
Get
Return signBit
End Get
End Property
Public Property Value As String
Set
If value.Trim().Length > 2 Then
Throw New ArgumentException("The string representation of a byte cannot have more than two characters.")
Else
byteString = value
End If
End Set
Get
Return byteString
End Get
End Property
' IConvertible implementations.
Public Function GetTypeCode() As TypeCode _
Implements IConvertible.GetTypeCode
Return TypeCode.Object
End Function
Public Function ToBoolean(provider As IFormatProvider) As Boolean _
Implements IConvertible.ToBoolean
If signBit = SignBit.Zero Then
Return False
Else
Return True
End If
End Function
Public Function ToByte(provider As IFormatProvider) As Byte _
Implements IConvertible.ToByte
If signBit = signBit.Negative Then
Throw New OverflowException(String.Format("{0} is out of range of the Byte type.", Convert.ToSByte(byteString, 16)))
Else
Return Byte.Parse(byteString, NumberStyles.HexNumber)
End If
End Function
Public Function ToChar(provider As IFormatProvider) As Char _
Implements IConvertible.ToChar
If signBit = signBit.Negative Then
Throw New OverflowException(String.Format("{0} is out of range of the Char type.", Convert.ToSByte(byteString, 16)))
Else
Dim byteValue As Byte = Byte.Parse(Me.byteString, NumberStyles.HexNumber)
Return Convert.ToChar(byteValue)
End If
End Function
Public Function ToDateTime(provider As IFormatProvider) As Date _
Implements IConvertible.ToDateTime
Throw New InvalidCastException("ByteString to DateTime conversion is not supported.")
End Function
Public Function ToDecimal(provider As IFormatProvider) As Decimal _
Implements IConvertible.ToDecimal
If signBit = signBit.Negative Then
Dim byteValue As SByte = SByte.Parse(byteString, NumberStyles.HexNumber)
Return Convert.ToDecimal(byteValue)
Else
Dim byteValue As Byte = Byte.Parse(byteString, NumberStyles.HexNumber)
Return Convert.ToDecimal(byteValue)
End If
End Function
Public Function ToDouble(provider As IFormatProvider) As Double _
Implements IConvertible.ToDouble
If signBit = signBit.Negative Then
Return Convert.ToDouble(SByte.Parse(byteString, NumberStyles.HexNumber))
Else
Return Convert.ToDouble(Byte.Parse(byteString, NumberStyles.HexNumber))
End If
End Function
Public Function ToInt16(provider As IFormatProvider) As Int16 _
Implements IConvertible.ToInt16
If signBit = signBit.Negative Then
Return Convert.ToInt16(SByte.Parse(byteString, NumberStyles.HexNumber))
Else
Return Convert.ToInt16(Byte.Parse(byteString, NumberStyles.HexNumber))
End If
End Function
Public Function ToInt32(provider As IFormatProvider) As Int32 _
Implements IConvertible.ToInt32
If signBit = signBit.Negative Then
Return Convert.ToInt32(SByte.Parse(byteString, NumberStyles.HexNumber))
Else
Return Convert.ToInt32(Byte.Parse(byteString, NumberStyles.HexNumber))
End If
End Function
Public Function ToInt64(provider As IFormatProvider) As Int64 _
Implements IConvertible.ToInt64
If signBit = signBit.Negative Then
Return Convert.ToInt64(SByte.Parse(byteString, NumberStyles.HexNumber))
Else
Return Convert.ToInt64(Byte.Parse(byteString, NumberStyles.HexNumber))
End If
End Function
Public Function ToSByte(provider As IFormatProvider) As SByte _
Implements IConvertible.ToSByte
Try
Return SByte.Parse(byteString, NumberStyles.HexNumber)
Catch e As OverflowException
Throw New OverflowException(String.Format("{0} is outside the range of the SByte type.", _
Byte.Parse(byteString, NumberStyles.HexNumber)))
End Try
End Function
Public Function ToSingle(provider As IFormatProvider) As Single _
Implements IConvertible.ToSingle
If signBit = signBit.Negative Then
Return Convert.ToSingle(SByte.Parse(byteString, NumberStyles.HexNumber))
Else
Return Convert.ToSingle(Byte.Parse(byteString, NumberStyles.HexNumber))
End If
End Function
Public Overloads Function ToString(provider As IFormatProvider) As String _
Implements IConvertible.ToString
Return Me.byteString
End Function
Public Function ToType(conversionType As Type, provider As IFormatProvider) As Object _
Implements IConvertible.ToType
Select Case Type.GetTypeCode(conversionType)
Case TypeCode.Boolean
Return Me.ToBoolean(Nothing)
Case TypeCode.Byte
Return Me.ToByte(Nothing)
Case TypeCode.Char
Return Me.ToChar(Nothing)
Case TypeCode.DateTime
Return Me.ToDateTime(Nothing)
Case TypeCode.Decimal
Return Me.ToDecimal(Nothing)
Case TypeCode.Double
Return Me.ToDouble(Nothing)
Case TypeCode.Int16
Return Me.ToInt16(Nothing)
Case TypeCode.Int32
Return Me.ToInt32(Nothing)
Case TypeCode.Int64
Return Me.ToInt64(Nothing)
Case TypeCode.Object
If GetType(ByteString).Equals(conversionType) Then
Return Me
Else
Throw New InvalidCastException(String.Format("Conversion to a {0} is not supported.", conversionType.Name))
End If
Case TypeCode.SByte
Return Me.ToSByte(Nothing)
Case TypeCode.Single
Return Me.ToSingle(Nothing)
Case TypeCode.String
Return Me.ToString(Nothing)
Case TypeCode.UInt16
Return Me.ToUInt16(Nothing)
Case TypeCode.UInt32
Return Me.ToUInt32(Nothing)
Case TypeCode.UInt64
Return Me.ToUInt64(Nothing)
Case Else
Throw New InvalidCastException(String.Format("Conversion to {0} is not supported.", conversionType.Name))
End Select
End Function
Public Function ToUInt16(provider As IFormatProvider) As UInt16 _
Implements IConvertible.ToUInt16
If signBit = signBit.Negative Then
Throw New OverflowException(String.Format("{0} is outside the range of the UInt16 type.", _
SByte.Parse(byteString, NumberStyles.HexNumber)))
Else
Return Convert.ToUInt16(Byte.Parse(byteString, NumberStyles.HexNumber))
End If
End Function
Public Function ToUInt32(provider As IFormatProvider) As UInt32 _
Implements IConvertible.ToUInt32
If signBit = signBit.Negative Then
Throw New OverflowException(String.Format("{0} is outside the range of the UInt32 type.", _
SByte.Parse(byteString, NumberStyles.HexNumber)))
Else
Return Convert.ToUInt32(Byte.Parse(byteString, NumberStyles.HexNumber))
End If
End Function
Public Function ToUInt64(provider As IFormatProvider) As UInt64 _
Implements IConvertible.ToUInt64
If signBit = signBit.Negative Then
Throw New OverflowException(String.Format("{0} is outside the range of the UInt64 type.", _
SByte.Parse(byteString, NumberStyles.HexNumber)))
Else
Return Convert.ToUInt64(Byte.Parse(byteString, NumberStyles.HexNumber))
End If
End Function
End Structure
Im folgenden Beispiel wird gezeigt, wie die IConvertible.ToSByte Implementierung der ByteString
-Klasse von der Convert.ToSByte(Object, IFormatProvider)-Methode aufgerufen wird.The following example shows how the IConvertible.ToSByte implementation of the ByteString
class is called by the Convert.ToSByte(Object, IFormatProvider) method.
public class Class1
{
public static void Main()
{
sbyte positiveByte = 120;
sbyte negativeByte = -101;
ByteString positiveString = new ByteString();
positiveString.Sign = (SignBit) Math.Sign(positiveByte);
positiveString.Value = positiveByte.ToString("X2");
ByteString negativeString = new ByteString();
negativeString.Sign = (SignBit) Math.Sign(negativeByte);
negativeString.Value = negativeByte.ToString("X2");
try {
Console.WriteLine("'{0}' converts to {1}.", positiveString.Value, Convert.ToSByte(positiveString));
}
catch (OverflowException) {
Console.WriteLine("0x{0} is outside the range of the Byte type.", positiveString.Value);
}
try {
Console.WriteLine("'{0}' converts to {1}.", negativeString.Value, Convert.ToSByte(negativeString));
}
catch (OverflowException) {
Console.WriteLine("0x{0} is outside the range of the Byte type.", negativeString.Value);
}
}
}
// The example displays the following output:
// '78' converts to 120.
// '9B' converts to -101.
Module modMain
Public Sub Main()
Dim positiveByte As SByte = 120
Dim negativeByte As SByte = -101
Dim positiveString As New ByteString()
positiveString.Sign = CType(Math.Sign(positiveByte), SignBit)
positiveString.Value = positiveByte.ToString("X2")
Dim negativeString As New ByteString()
negativeString.Sign = CType(Math.Sign(negativeByte), SignBit)
negativeString.Value = negativeByte.ToString("X2")
Try
Console.WriteLine("'{0}' converts to {1}.", positiveString.Value, Convert.ToSByte(positiveString))
Catch e As OverflowException
Console.WriteLine("0x{0} is outside the range of the Byte type.", positiveString.Value)
End Try
Try
Console.WriteLine("'{0}' converts to {1}.", negativeString.Value, Convert.ToSByte(negativeString))
Catch e As OverflowException
Console.WriteLine("0x{0} is outside the range of the Byte type.", negativeString.Value)
End Try
End Sub
End Module
' The example dosplays the following output:
' '78' converts to 120.
' '9B' converts to -101.
Hinweise
provider
ermöglicht es dem Benutzer, kulturspezifische Konvertierungs Informationen zum Inhalt von value
anzugeben.provider
enables the user to specify culture-specific conversion information about the contents of value
. Wenn value
z. b. ein String ist, das eine Zahl darstellt, können provider
kulturspezifische Informationen über die Notation bereitstellen, die für diese Zahl verwendet wird.For example, if value
is a String that represents a number, provider
could supply culture-specific information about the notation used to represent that number.
Die Basis Typen ignorieren provider
; der-Parameter kann jedoch verwendet werden, wenn value
ein benutzerdefinierter Typ ist, der die IConvertible-Schnittstelle implementiert.The base types ignore provider
; however, the parameter may be used if value
is a user-defined type that implements the IConvertible interface.
ToSByte(UInt64)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert den Wert der angegebenen 64-Bit-Ganzzahl ohne Vorzeichen in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified 64-bit unsigned integer to an equivalent 8-bit signed integer.
public:
static System::SByte ToSByte(System::UInt64 value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (ulong value);
static member ToSByte : uint64 -> sbyte
Public Shared Function ToSByte (value As ULong) As SByte
Parameter
- value
- UInt64
Die zu konvertierende 64-Bit-Ganzzahl ohne Vorzeichen.The 64-bit unsigned integer to convert.
Gibt zurück
Eine 8-Bit-Ganzzahl mit Vorzeichen, die value
entspricht.An 8-bit signed integer that is equivalent to value
.
- Attribute
Ausnahmen
value
ist größer als MaxValue oder kleiner als MinValue.value
is greater than MaxValue or less than MinValue.
Beispiele
Im folgenden Beispiel wird versucht, jedes Element in einem Array von langen ganzen Zahlen in ein Byte mit Vorzeichen zu konvertieren.The following example attempts to convert each element in an array of long integers to a signed byte.
ulong[] numbers = { UInt64.MinValue, 121, 340, UInt64.MaxValue };
sbyte result;
foreach (ulong number in numbers)
{
try {
result = Convert.ToSByte(number);
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
number.GetType().Name, number,
result.GetType().Name, result);
}
catch (OverflowException) {
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.",
number.GetType().Name, number);
}
}
// The example displays the following output:
// Converted the UInt64 value 0 to the SByte value 0.
// Converted the UInt64 value 121 to the SByte value 121.
// The UInt64 value 340 is outside the range of the SByte type.
// The UInt64 value 18446744073709551615 is outside the range of the SByte type.
Dim numbers() As ULong = { UInt64.MinValue, 121, 340, UInt64.MaxValue }
Dim result As SByte
For Each number As ULong In numbers
Try
result = Convert.ToSByte(number)
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
number.GetType().Name, number, _
result.GetType().Name, result)
Catch e As OverflowException
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.", _
number.GetType().Name, number)
End Try
Next
' The example displays the following output:
' Converted the UInt64 value 0 to the SByte value 0.
' Converted the UInt64 value 121 to the SByte value 121.
' The UInt64 value 340 is outside the range of the SByte type.
' The UInt64 value 18446744073709551615 is outside the range of the SByte type.
ToSByte(UInt32)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert den Wert der angegebenen 32-Bit-Ganzzahl ohne Vorzeichen in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified 32-bit unsigned integer to an equivalent 8-bit signed integer.
public:
static System::SByte ToSByte(System::UInt32 value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (uint value);
static member ToSByte : uint32 -> sbyte
Public Shared Function ToSByte (value As UInteger) As SByte
Parameter
- value
- UInt32
Die zu konvertierende 32-Bit-Ganzzahl ohne Vorzeichen.The 32-bit unsigned integer to convert.
Gibt zurück
Eine 8-Bit-Ganzzahl mit Vorzeichen, die value
entspricht.An 8-bit signed integer that is equivalent to value
.
- Attribute
Ausnahmen
value
ist größer als MaxValue oder kleiner als MinValue.value
is greater than MaxValue or less than MinValue.
Beispiele
Im folgenden Beispiel wird versucht, jedes Element in einem ganzzahligen Array in ein Byte mit Vorzeichen zu konvertieren.The following example attempts to convert each element in an integer array to a signed byte.
uint[] numbers = { UInt32.MinValue, 121, 340, UInt32.MaxValue };
sbyte result;
foreach (uint number in numbers)
{
try {
result = Convert.ToSByte(number);
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
number.GetType().Name, number,
result.GetType().Name, result);
}
catch (OverflowException) {
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.",
number.GetType().Name, number);
}
}
// The example displays the following output:
// Converted the UInt32 value 0 to the SByte value 0.
// Converted the UInt32 value 121 to the SByte value 121.
// The UInt32 value 340 is outside the range of the SByte type.
// The UInt32 value 4294967295 is outside the range of the SByte type.
Dim numbers() As UInteger = { UInt32.MinValue, 121, 340, UInt32.MaxValue }
Dim result As SByte
For Each number As UInteger In numbers
Try
result = Convert.ToSByte(number)
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
number.GetType().Name, number, _
result.GetType().Name, result)
Catch e As OverflowException
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.", _
number.GetType().Name, number)
End Try
Next
' The example displays the following output:
' Converted the UInt32 value 0 to the SByte value 0.
' Converted the UInt32 value 121 to the SByte value 121.
' The UInt32 value 340 is outside the range of the SByte type.
' The UInt32 value 4294967295 is outside the range of the SByte type.
ToSByte(String)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert die angegebene Zeichenfolgendarstellung einer Zahl in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the specified string representation of a number to an equivalent 8-bit signed integer.
public:
static System::SByte ToSByte(System::String ^ value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (string value);
static member ToSByte : string -> sbyte
Public Shared Function ToSByte (value As String) As SByte
Parameter
- value
- String
Eine Zeichenfolge, die die zu konvertierende Zahl enthält.A string that contains the number to convert.
Gibt zurück
Eine 8-Bit-Ganzzahl mit Vorzeichen, die der Zahl in value
entspricht, oder 0 (null), wenn der Wert gleich null
ist.An 8-bit signed integer that is equivalent to the number in value
, or 0 (zero) if value is null
.
- Attribute
Ausnahmen
value
besteht nicht aus einem optionalen Vorzeichen und einer Folge von Ziffern (0 bis 9).value
does not consist of an optional sign followed by a sequence of digits (0 through 9).
value
stellt eine Zahl dar, die kleiner als MinValue oder größer als MaxValue ist.value
represents a number that is less than MinValue or greater than MaxValue.
Beispiele
Im folgenden Beispiel werden Zeichen folgen Darstellungen von SByte-Werten mit der ToSByte
-Methode unter Verwendung der Standard Formatierung konvertiert.The following example converts string representations of SByte values with the ToSByte
method, using default formatting.
// Example of the Convert::ToSByte( String* ) and
// Convert::ToSByte( String*, IFormatProvider* ) methods.
using namespace System;
using namespace System::Globalization;
const __wchar_t * protoFmt = L"{0,-20}{1,-20}{2}";
// Get the exception type name; remove the namespace prefix.
String^ GetExceptionType( Exception^ ex )
{
String^ exceptionType = ex->GetType()->ToString();
return exceptionType->Substring( exceptionType->LastIndexOf( '.' ) + 1 );
}
void ConvertToSByte( String^ numericStr, IFormatProvider^ provider )
{
Object^ defaultValue;
Object^ providerValue;
// Convert numericStr to SByte without a format provider.
try
{
defaultValue = Convert::ToSByte( numericStr );
}
catch ( Exception^ ex )
{
defaultValue = GetExceptionType( ex );
}
// Convert numericStr to SByte with a format provider.
try
{
providerValue = Convert::ToSByte( numericStr, provider );
}
catch ( Exception^ ex )
{
providerValue = GetExceptionType( ex );
}
Console::WriteLine( gcnew String( protoFmt ), numericStr, defaultValue, providerValue );
}
int main()
{
// Create a NumberFormatInfo object and set several of its
// properties that apply to numbers.
NumberFormatInfo^ provider = gcnew NumberFormatInfo;
// These properties affect the conversion.
provider->NegativeSign = "neg ";
provider->PositiveSign = "pos ";
// These properties do not affect the conversion.
// The input string cannot have decimal and group separators.
provider->NumberDecimalSeparator = ".";
provider->NumberNegativePattern = 0;
Console::WriteLine( "This example of\n"
" Convert::ToSByte( String* ) and \n"
" Convert::ToSByte( String*, IFormatProvider* ) "
"\ngenerates the following output. It converts "
"several strings to \nSByte values, using "
"default formatting or a NumberFormatInfo object.\n" );
Console::WriteLine( gcnew String( protoFmt ), "String to convert", "Default/exception", "Provider/exception" );
Console::WriteLine( gcnew String( protoFmt ), "-----------------", "-----------------", "------------------" );
// Convert strings, with and without an IFormatProvider.
ConvertToSByte( "123", provider );
ConvertToSByte( "+123", provider );
ConvertToSByte( "pos 123", provider );
ConvertToSByte( "-123", provider );
ConvertToSByte( "neg 123", provider );
ConvertToSByte( "123.", provider );
ConvertToSByte( "(123)", provider );
ConvertToSByte( "128", provider );
ConvertToSByte( "-129", provider );
}
/*
This example of
Convert::ToSByte( String* ) and
Convert::ToSByte( String*, IFormatProvider* )
generates the following output. It converts several strings to
SByte values, using default formatting or a NumberFormatInfo object.
String to convert Default/exception Provider/exception
----------------- ----------------- ------------------
123 123 123
+123 123 FormatException
pos 123 FormatException 123
-123 -123 FormatException
neg 123 FormatException -123
123. FormatException FormatException
(123) FormatException FormatException
128 OverflowException OverflowException
-129 OverflowException FormatException
*/
// Example of the Convert.ToSByte( string ) and
// Convert.ToSByte( string, IFormatProvider ) methods.
using System;
using System.Globalization;
class ToSByteProviderDemo
{
static string format = "{0,-20}{1,-20}{2}";
// Get the exception type name; remove the namespace prefix.
static string GetExceptionType( Exception ex )
{
string exceptionType = ex.GetType( ).ToString( );
return exceptionType.Substring(
exceptionType.LastIndexOf( '.' ) + 1 );
}
static void ConvertToSByte( string numericStr,
IFormatProvider provider )
{
object defaultValue;
object providerValue;
// Convert numericStr to SByte without a format provider.
try
{
defaultValue = Convert.ToSByte( numericStr );
}
catch( Exception ex )
{
defaultValue = GetExceptionType( ex );
}
// Convert numericStr to SByte with a format provider.
try
{
providerValue = Convert.ToSByte( numericStr, provider );
}
catch( Exception ex )
{
providerValue = GetExceptionType( ex );
}
Console.WriteLine( format, numericStr,
defaultValue, providerValue );
}
public static void Main( )
{
// Create a NumberFormatInfo object and set several of its
// properties that apply to numbers.
NumberFormatInfo provider = new NumberFormatInfo();
// These properties affect the conversion.
provider.NegativeSign = "neg ";
provider.PositiveSign = "pos ";
// These properties do not affect the conversion.
// The input string cannot have decimal and group separators.
provider.NumberDecimalSeparator = ".";
provider.NumberNegativePattern = 0;
Console.WriteLine("This example of\n" +
" Convert.ToSByte( string ) and \n" +
" Convert.ToSByte( string, IFormatProvider ) " +
"\ngenerates the following output. It converts " +
"several strings to \nSByte values, using " +
"default formatting or a NumberFormatInfo object.\n" );
Console.WriteLine( format, "String to convert",
"Default/exception", "Provider/exception" );
Console.WriteLine( format, "-----------------",
"-----------------", "------------------" );
// Convert strings, with and without an IFormatProvider.
ConvertToSByte( "123", provider );
ConvertToSByte( "+123", provider );
ConvertToSByte( "pos 123", provider );
ConvertToSByte( "-123", provider );
ConvertToSByte( "neg 123", provider );
ConvertToSByte( "123.", provider );
ConvertToSByte( "(123)", provider );
ConvertToSByte( "128", provider );
ConvertToSByte( "-129", provider );
}
}
/*
This example of
Convert.ToSByte( string ) and
Convert.ToSByte( string, IFormatProvider )
generates the following output. It converts several strings to
SByte values, using default formatting or a NumberFormatInfo object.
String to convert Default/exception Provider/exception
----------------- ----------------- ------------------
123 123 123
+123 123 FormatException
pos 123 FormatException 123
-123 -123 FormatException
neg 123 FormatException -123
123. FormatException FormatException
(123) FormatException FormatException
128 OverflowException OverflowException
-129 OverflowException FormatException
*/
' Example of the Convert.ToSByte( String ) and
' Convert.ToSByte( String, IFormatProvider ) methods.
Imports System.Globalization
Module ToSByteProviderDemo
Dim format As String = "{0,-20}{1,-20}{2}"
' Get the exception type name; remove the namespace prefix.
Function GetExceptionType( ex As Exception ) As String
Dim exceptionType As String = ex.GetType( ).ToString( )
Return exceptionType.Substring( _
exceptionType.LastIndexOf( "."c ) + 1 )
End Function
Sub ConvertToSByte( numericStr As String, _
provider As IFormatProvider )
Dim defaultValue As Object
Dim providerValue As Object
' Convert numericStr to SByte without a format provider.
Try
defaultValue = Convert.ToSByte( numericStr )
Catch ex As Exception
defaultValue = GetExceptionType( ex )
End Try
' Convert numericStr to SByte with a format provider.
Try
providerValue = Convert.ToSByte( numericStr, provider )
Catch ex As Exception
providerValue = GetExceptionType( ex )
End Try
Console.WriteLine( format, numericStr, _
defaultValue, providerValue )
End Sub
Sub Main( )
' Create a NumberFormatInfo object and set several of its
' properties that apply to numbers.
Dim provider As NumberFormatInfo = new NumberFormatInfo( )
' These properties affect the conversion.
provider.NegativeSign = "neg "
provider.PositiveSign = "pos "
' These properties do not affect the conversion.
' The input string cannot have decimal and group separators.
provider.NumberDecimalSeparator = "."
provider.NumberNegativePattern = 0
Console.WriteLine( "This example of" & vbCrLf & _
" Convert.ToSByte( String ) and " & vbCrLf & _
" Convert.ToSByte( String, IFormatProvider ) " & _
vbCrLf & "generates the following output. It " & _
"converts several strings to " & vbCrLf & "SByte " & _
"values, using default formatting " & _
"or a NumberFormatInfo object." & vbCrLf )
Console.WriteLine( format, "String to convert", _
"Default/exception", "Provider/exception" )
Console.WriteLine( format, "-----------------", _
"-----------------", "------------------" )
' Convert strings, with and without an IFormatProvider.
ConvertToSByte( "123", provider )
ConvertToSByte( "+123", provider )
ConvertToSByte( "pos 123", provider )
ConvertToSByte( "-123", provider )
ConvertToSByte( "neg 123", provider )
ConvertToSByte( "123.", provider )
ConvertToSByte( "(123)", provider )
ConvertToSByte( "128", provider )
ConvertToSByte( "-129", provider )
End Sub
End Module
' This example of
' Convert.ToSByte( String ) and
' Convert.ToSByte( String, IFormatProvider )
' generates the following output. It converts several strings to
' SByte values, using default formatting or a NumberFormatInfo object.
'
' String to convert Default/exception Provider/exception
' ----------------- ----------------- ------------------
' 123 123 123
' +123 123 FormatException
' pos 123 FormatException 123
' -123 -123 FormatException
' neg 123 FormatException -123
' 123. FormatException FormatException
' (123) FormatException FormatException
' 128 OverflowException OverflowException
' -129 OverflowException FormatException
Hinweise
Die Verwendung der ToSByte(String)-Methode entspricht der Übergabe von value
an die SByte.Parse(String)-Methode.Using the ToSByte(String) method is equivalent to passing value
to the SByte.Parse(String) method. value
wird mithilfe der Formatierungskonventionen der aktuellen Threadkultur interpretiert.value
is interpreted by using the formatting conventions of the current thread culture.
Wenn eine Ausnahme nicht behandelt werden soll, wenn bei der Konvertierung ein Fehler auftritt, können Sie stattdessen die SByte.TryParse-Methode abrufen.If you prefer not to handle an exception if the conversion fails, you can call the SByte.TryParse method instead. Sie gibt einen Boolean Wert zurück, der angibt, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.It returns a Boolean value that indicates whether the conversion succeeded or failed.
Siehe auch
ToSByte(Single)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert den Wert der angegebenen Gleitkommazahl mit einfacher Genauigkeit in die entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified single-precision floating-point number to an equivalent 8-bit signed integer.
public:
static System::SByte ToSByte(float value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (float value);
static member ToSByte : single -> sbyte
Public Shared Function ToSByte (value As Single) As SByte
Parameter
- value
- Single
Die zu konvertierende Gleitkommazahl mit einfacher Genauigkeit.The single-precision floating-point number to convert.
Gibt zurück
value
, auf die nächste 8-Bit-Ganzzahl mit Vorzeichen gerundet.value
, rounded to the nearest 8-bit signed integer. Wenn value
genau zwischen zwei ganzen Zahlen liegt, wird die gerade Zahl zurückgegeben (d. h. 4,5 wird in 4 und 5,5 in 6 konvertiert).If value
is halfway between two whole numbers, the even number is returned; that is, 4.5 is converted to 4, and 5.5 is converted to 6.
- Attribute
Ausnahmen
value
ist größer als MaxValue oder kleiner als MinValue.value
is greater than MaxValue or less than MinValue.
Beispiele
Im folgenden Beispiel wird versucht, jedes Element in einem Array von Single-Werten in ein Byte mit Vorzeichen zu konvertieren.The following example attempts to convert each element in an array of Single values to a signed byte.
object[] values = { true, -12, 163, 935, 'x', "104", "103.0", "-1",
"1.00e2", "One", 1.00e2};
sbyte result;
foreach (object value in values)
{
try {
result = Convert.ToSByte(value);
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
value.GetType().Name, value,
result.GetType().Name, result);
}
catch (OverflowException) {
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.",
value.GetType().Name, value);
}
catch (FormatException) {
Console.WriteLine("The {0} value {1} is not in a recognizable format.",
value.GetType().Name, value);
}
catch (InvalidCastException) {
Console.WriteLine("No conversion to a Byte exists for the {0} value {1}.",
value.GetType().Name, value);
}
}
// The example displays the following output:
// Converted the Boolean value true to the SByte value 1.
// Converted the Int32 value -12 to the SByte value -12.
// The Int32 value 163 is outside the range of the SByte type.
// The Int32 value 935 is outside the range of the SByte type.
// Converted the Char value x to the SByte value 120.
// Converted the String value 104 to the SByte value 104.
// The String value 103.0 is not in a recognizable format.
// Converted the String value -1 to the SByte value -1.
// The String value 1.00e2 is not in a recognizable format.
// The String value One is not in a recognizable format.
// Converted the Double value 100 to the SByte value 100.
Dim values() As Object = { True, -12, 163, 935, "x"c, "104", "103.0", "-1", _
"1.00e2", "One", 1.00e2}
Dim result As SByte
For Each value As Object In values
Try
result = Convert.ToSByte(value)
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
value.GetType().Name, value, _
result.GetType().Name, result)
Catch e As OverflowException
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.", _
value.GetType().Name, value)
Catch e As FormatException
Console.WriteLine("The {0} value {1} is not in a recognizable format.", _
value.GetType().Name, value)
Catch e As InvalidCastException
Console.WriteLine("No conversion to a Byte exists for the {0} value {1}.", _
value.GetType().Name, value)
End Try
Next
' The example displays the following output:
' Converted the Boolean value True to the SByte value 1.
' Converted the Int32 value -12 to the SByte value -12.
' The Int32 value 163 is outside the range of the SByte type.
' The Int32 value 935 is outside the range of the SByte type.
' Converted the Char value x to the SByte value 120.
' Converted the String value 104 to the SByte value 104.
' The String value 103.0 is not in a recognizable format.
' Converted the String value -1 to the SByte value -1.
' The String value 1.00e2 is not in a recognizable format.
' The String value One is not in a recognizable format.
' Converted the Double value 100 to the SByte value 100.
Siehe auch
ToSByte(Object)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert den Wert des angegebenen Objekts in eine 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified object to an 8-bit signed integer.
public:
static System::SByte ToSByte(System::Object ^ value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (object value);
static member ToSByte : obj -> sbyte
Public Shared Function ToSByte (value As Object) As SByte
Parameter
- value
- Object
Ein Objekt, das die IConvertible-Schnittstelle implementiert, oder null
.An object that implements the IConvertible interface, or null
.
Gibt zurück
Eine 8-Bit-Ganzzahl mit Vorzeichen, die value
entspricht, oder 0 (null), wenn value
gleich null
ist.An 8-bit signed integer that is equivalent to value
, or zero if value
is null
.
- Attribute
Ausnahmen
value
weist kein geeignetes Format auf.value
is not in an appropriate format.
Die IConvertible-Schnittstelle wird von value
nicht implementiert.value
does not implement the IConvertible interface.
- oder --or- Die Konvertierung wird nicht unterstützt.The conversion is not supported.
value
stellt eine Zahl dar, die kleiner als MinValue oder größer als MaxValue ist.value
represents a number that is less than MinValue or greater than MaxValue.
Beispiele
Im folgenden Beispiel wird versucht, jedes Element in einem Objekt Array in ein Byte mit Vorzeichen zu konvertieren.The following example attempts to convert each element in an object array to a signed byte.
object[] values = { true, -12, 163, 935, 'x', "104", "103.0", "-1",
"1.00e2", "One", 1.00e2};
sbyte result;
foreach (object value in values)
{
try {
result = Convert.ToSByte(value);
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
value.GetType().Name, value,
result.GetType().Name, result);
}
catch (OverflowException) {
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.",
value.GetType().Name, value);
}
catch (FormatException) {
Console.WriteLine("The {0} value {1} is not in a recognizable format.",
value.GetType().Name, value);
}
catch (InvalidCastException) {
Console.WriteLine("No conversion to a Byte exists for the {0} value {1}.",
value.GetType().Name, value);
}
}
// The example displays the following output:
// Converted the Boolean value true to the SByte value 1.
// Converted the Int32 value -12 to the SByte value -12.
// The Int32 value 163 is outside the range of the SByte type.
// The Int32 value 935 is outside the range of the SByte type.
// Converted the Char value x to the SByte value 120.
// Converted the String value 104 to the SByte value 104.
// The String value 103.0 is not in a recognizable format.
// Converted the String value -1 to the SByte value -1.
// The String value 1.00e2 is not in a recognizable format.
// The String value One is not in a recognizable format.
// Converted the Double value 100 to the SByte value 100.
Dim values() As Object = { True, -12, 163, 935, "x"c, "104", "103.0", "-1", _
"1.00e2", "One", 1.00e2}
Dim result As SByte
For Each value As Object In values
Try
result = Convert.ToSByte(value)
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
value.GetType().Name, value, _
result.GetType().Name, result)
Catch e As OverflowException
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.", _
value.GetType().Name, value)
Catch e As FormatException
Console.WriteLine("The {0} value {1} is not in a recognizable format.", _
value.GetType().Name, value)
Catch e As InvalidCastException
Console.WriteLine("No conversion to a Byte exists for the {0} value {1}.", _
value.GetType().Name, value)
End Try
Next
' The example displays the following output:
' Converted the Boolean value True to the SByte value 1.
' Converted the Int32 value -12 to the SByte value -12.
' The Int32 value 163 is outside the range of the SByte type.
' The Int32 value 935 is outside the range of the SByte type.
' Converted the Char value x to the SByte value 120.
' Converted the String value 104 to the SByte value 104.
' The String value 103.0 is not in a recognizable format.
' Converted the String value -1 to the SByte value -1.
' The String value 1.00e2 is not in a recognizable format.
' The String value One is not in a recognizable format.
' Converted the Double value 100 to the SByte value 100.
Hinweise
Der Rückgabewert ist das Ergebnis des Aufrufs der IConvertible.ToSByte-Methode des zugrunde liegenden Typs value
.The return value is the result of invoking the IConvertible.ToSByte method of the underlying type of value
.
ToSByte(UInt16)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert den Wert der angegebenen 16-Bit-Ganzzahl ohne Vorzeichen in die entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified 16-bit unsigned integer to the equivalent 8-bit signed integer.
public:
static System::SByte ToSByte(System::UInt16 value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (ushort value);
static member ToSByte : uint16 -> sbyte
Public Shared Function ToSByte (value As UShort) As SByte
Parameter
- value
- UInt16
Die zu konvertierende 16-Bit-Ganzzahl ohne Vorzeichen.The 16-bit unsigned integer to convert.
Gibt zurück
Eine 8-Bit-Ganzzahl mit Vorzeichen, die value
entspricht.An 8-bit signed integer that is equivalent to value
.
- Attribute
Ausnahmen
Beispiele
Im folgenden Beispiel wird versucht, jedes Element in einem Array von 16-Bit-Ganzzahlen ohne Vorzeichen in ein Byte mit Vorzeichen zu konvertieren.The following example attempts to convert each element in an array of unsigned 16-bit integers to a signed byte.
ushort[] numbers = { UInt16.MinValue, 121, 340, UInt16.MaxValue };
sbyte result;
foreach (ushort number in numbers)
{
try {
result = Convert.ToSByte(number);
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
number.GetType().Name, number,
result.GetType().Name, result);
}
catch (OverflowException) {
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.",
number.GetType().Name, number);
}
}
// The example displays the following output:
// Converted the UInt16 value 0 to the SByte value 0.
// Converted the UInt16 value 121 to the SByte value 121.
// The UInt16 value 340 is outside the range of the SByte type.
// The UInt16 value 65535 is outside the range of the SByte type.
Dim numbers() As UShort = { UInt16.MinValue, 121, 340, UInt16.MaxValue }
Dim result As SByte
For Each number As UShort In numbers
Try
result = Convert.ToSByte(number)
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
number.GetType().Name, number, _
result.GetType().Name, result)
Catch e As OverflowException
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.", _
number.GetType().Name, number)
End Try
Next
' The example displays the following output:
' Converted the UInt16 value 0 to the SByte value 0.
' Converted the UInt16 value 121 to the SByte value 121.
' The UInt16 value 340 is outside the range of the SByte type.
' The UInt16 value 65535 is outside the range of the SByte type.
ToSByte(Int32)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert den Wert der angegebenen 32-Bit-Ganzzahl mit Vorzeichen in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified 32-bit signed integer to an equivalent 8-bit signed integer.
public:
static System::SByte ToSByte(int value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (int value);
static member ToSByte : int -> sbyte
Public Shared Function ToSByte (value As Integer) As SByte
Parameter
- value
- Int32
Die zu konvertierende 32-Bit-Ganzzahl mit Vorzeichen.The 32-bit signed integer to convert.
Gibt zurück
Eine 8-Bit-Ganzzahl mit Vorzeichen, die value
entspricht.An 8-bit signed integer that is equivalent to value
.
- Attribute
Ausnahmen
value
ist größer als MaxValue oder kleiner als MinValue.value
is greater than MaxValue or less than MinValue.
Beispiele
Im folgenden Beispiel wird versucht, jedes Element in einem Array von Ganzzahlen mit Vorzeichen in ein Byte mit Vorzeichen zu konvertieren.The following example attempts to convert each element in an array of signed integers to a signed byte.
int[] numbers = { Int32.MinValue, -1, 0, 121, 340, Int32.MaxValue };
sbyte result;
foreach (int number in numbers)
{
try {
result = Convert.ToSByte(number);
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
number.GetType().Name, number,
result.GetType().Name, result);
}
catch (OverflowException) {
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.",
number.GetType().Name, number);
}
}
// The example displays the following output:
// The Int32 value -2147483648 is outside the range of the SByte type.
// Converted the Int32 value -1 to the SByte value -1.
// Converted the Int32 value 0 to the SByte value 0.
// Converted the Int32 value 121 to the SByte value 121.
// The Int32 value 340 is outside the range of the SByte type.
// The Int32 value 2147483647 is outside the range of the SByte type.
Dim numbers() As Integer = { Int32.MinValue, -1, 0, 121, 340, Int32.MaxValue }
Dim result As SByte
For Each number As Integer In numbers
Try
result = Convert.ToSByte(number)
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
number.GetType().Name, number, _
result.GetType().Name, result)
Catch e As OverflowException
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.", _
number.GetType().Name, number)
End Try
Next
' The example displays the following output:
' The Int32 value -2147483648 is outside the range of the SByte type.
' Converted the Int32 value -1 to the SByte value -1.
' Converted the Int32 value 0 to the SByte value 0.
' Converted the Int32 value 121 to the SByte value 121.
' The Int32 value 340 is outside the range of the SByte type.
' The Int32 value 2147483647 is outside the range of the SByte type.
ToSByte(Int64)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert den Wert der angegebenen 64-Bit-Ganzzahl mit Vorzeichen in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified 64-bit signed integer to an equivalent 8-bit signed integer.
public:
static System::SByte ToSByte(long value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (long value);
static member ToSByte : int64 -> sbyte
Public Shared Function ToSByte (value As Long) As SByte
Parameter
- value
- Int64
Die zu konvertierende 64-Bit-Ganzzahl mit Vorzeichen.The 64-bit signed integer to convert.
Gibt zurück
Eine 8-Bit-Ganzzahl mit Vorzeichen, die value
entspricht.An 8-bit signed integer that is equivalent to value
.
- Attribute
Ausnahmen
value
ist größer als MaxValue oder kleiner als MinValue.value
is greater than MaxValue or less than MinValue.
Beispiele
Im folgenden Beispiel wird versucht, jedes Element in einem Array von langen ganzen Zahlen in ein Byte mit Vorzeichen zu konvertieren.The following example attempts to convert each element in an array of long integers to a signed byte.
long[] numbers = { Int64.MinValue, -1, 0, 121, 340, Int64.MaxValue };
sbyte result;
foreach (long number in numbers)
{
try {
result = Convert.ToSByte(number);
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
number.GetType().Name, number,
result.GetType().Name, result);
}
catch (OverflowException) {
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.",
number.GetType().Name, number);
}
}
// The example displays the following output:
// The Int64 value -9223372036854775808 is outside the range of the SByte type.
// Converted the Int64 value -1 to the SByte value -1.
// Converted the Int64 value 0 to the SByte value 0.
// Converted the Int64 value 121 to the SByte value 121.
// The Int64 value 340 is outside the range of the SByte type.
// The Int64 value 9223372036854775807 is outside the range of the SByte type.
Dim numbers() As Long = { Int64.MinValue, -1, 0, 121, 340, Int64.MaxValue }
Dim result As SByte
For Each number As Long In numbers
Try
result = Convert.ToSByte(number)
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
number.GetType().Name, number, _
result.GetType().Name, result)
Catch e As OverflowException
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.", _
number.GetType().Name, number)
End Try
Next
' The example displays the following output:
' The Int64 value -9223372036854775808 is outside the range of the SByte type.
' Converted the Int64 value -1 to the SByte value -1.
' Converted the Int64 value 0 to the SByte value 0.
' Converted the Int64 value 121 to the SByte value 121.
' The Int64 value 340 is outside the range of the SByte type.
' The Int64 value 9223372036854775807 is outside the range of the SByte type.
ToSByte(Byte)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert den Wert der angegebenen 8-Bit-Ganzzahl ohne Vorzeichen in die entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified 8-bit unsigned integer to the equivalent 8-bit signed integer.
public:
static System::SByte ToSByte(System::Byte value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (byte value);
static member ToSByte : byte -> sbyte
Public Shared Function ToSByte (value As Byte) As SByte
Parameter
- value
- Byte
Die zu konvertierende 8-Bit-Ganzzahl ohne Vorzeichen.The 8-bit unsigned integer to convert.
Gibt zurück
Eine 8-Bit-Ganzzahl mit Vorzeichen, die value
entspricht.An 8-bit signed integer that is equivalent to value
.
- Attribute
Ausnahmen
Beispiele
Im folgenden Beispiel wird versucht, jedes Element in einem Bytearray in ein Byte mit Vorzeichen zu konvertieren.The following example attempts to convert each element in a byte array to a signed byte.
byte[] numbers = { Byte.MinValue, 10, 100, Byte.MaxValue };
sbyte result;
foreach (byte number in numbers)
{
try {
result = Convert.ToSByte(number);
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
number.GetType().Name, number,
result.GetType().Name, result);
}
catch (OverflowException) {
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.",
number.GetType().Name, number);
}
}
// The example displays the following output:
// Converted the Byte value 0 to the SByte value 0.
// Converted the Byte value 10 to the SByte value 10.
// Converted the Byte value 100 to the SByte value 100.
// The Byte value 255 is outside the range of the SByte type.
Dim numbers() As Byte = { Byte.MinValue, 10, 100, Byte.MaxValue }
Dim result As SByte
For Each number As Byte In numbers
Try
result = Convert.ToSByte(number)
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
number.GetType().Name, number, _
result.GetType().Name, result)
Catch e As OverflowException
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.", _
number.GetType().Name, number)
End Try
Next
' The example displays the following output:
' Converted the Byte value 0 to the SByte value 0.
' Converted the Byte value 10 to the SByte value 10.
' Converted the Byte value 100 to the SByte value 100.
' The Byte value 255 is outside the range of the SByte type.
ToSByte(Char)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert den Wert des angegebenen Unicode-Zeichens in die entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified Unicode character to the equivalent 8-bit signed integer.
public:
static System::SByte ToSByte(char value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (char value);
static member ToSByte : char -> sbyte
Public Shared Function ToSByte (value As Char) As SByte
Parameter
- value
- Char
Das zu konvertierende Unicode-Zeichen.The Unicode character to convert.
Gibt zurück
Eine 8-Bit-Ganzzahl mit Vorzeichen, die value
entspricht.An 8-bit signed integer that is equivalent to value
.
- Attribute
Ausnahmen
Beispiele
Im folgenden Beispiel wird versucht, jedes Element in einem Array von Char-Werten in ein Byte mit Vorzeichen zu konvertieren.The following example attempts to convert each element in an array of Char values to a signed byte.
char[] chars = { 'a', 'z', '\u0007', '\u0200', '\u1023' };
foreach (char ch in chars)
{
try {
sbyte result = Convert.ToSByte(ch);
Console.WriteLine("{0} is converted to {1}.", ch, result);
}
catch (OverflowException) {
Console.WriteLine("Unable to convert u+{0} to a byte.",
Convert.ToInt16(ch).ToString("X4"));
}
}
// The example displays the following output:
// a is converted to 97.
// z is converted to 122.
// is converted to 7.
// Unable to convert u+00C8 to a byte.
// Unable to convert u+03FF to a byte.
Dim chars() As Char = { "a"c, "z"c, ChrW(7), ChrW(200), ChrW(1023) }
For Each ch As Char in chars
Try
Dim result As SByte = Convert.ToSByte(ch)
Console.WriteLine("{0} is converted to {1}.", ch, result)
Catch e As OverflowException
Console.WriteLine("Unable to convert u+{0} to a byte.", _
AscW(ch).ToString("X4"))
End Try
Next
' The example displays the following output:
' a is converted to 97.
' z is converted to 122.
' is converted to 7.
' Unable to convert u+00C8 to a byte.
' Unable to convert u+03FF to a byte.
ToSByte(DateTime)
Wichtig
Diese API ist nicht CLS-kompatibel.
Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.Calling this method always throws InvalidCastException.
public:
static System::SByte ToSByte(DateTime value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (DateTime value);
static member ToSByte : DateTime -> sbyte
Public Shared Function ToSByte (value As DateTime) As SByte
Parameter
- value
- DateTime
Der Datums- und Uhrzeitwert, der konvertiert werden soll.The date and time value to convert.
Gibt zurück
Diese Konvertierung wird nicht unterstützt.This conversion is not supported. Es wird kein Wert zurückgegeben.No value is returned.
- Attribute
Ausnahmen
Diese Konvertierung wird nicht unterstützt.This conversion is not supported.
ToSByte(Boolean)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert den angegebenen booleschen Wert in die entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the specified Boolean value to the equivalent 8-bit signed integer.
public:
static System::SByte ToSByte(bool value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (bool value);
static member ToSByte : bool -> sbyte
Public Shared Function ToSByte (value As Boolean) As SByte
Parameter
- value
- Boolean
Der zu konvertierende boolesche Wert.The Boolean value to convert.
Gibt zurück
Die Zahl 1, wenn value
true
ist, andernfalls 0 (null).The number 1 if value
is true
; otherwise, 0.
- Attribute
Beispiele
Im folgenden Beispiel werden die booleschen Werte true
und false
in Byte Werte mit Vorzeichen konvertiert.The following example converts the Boolean values true
and false
to signed byte values.
bool falseFlag = false;
bool trueFlag = true;
Console.WriteLine("{0} converts to {1}.", falseFlag,
Convert.ToSByte(falseFlag));
Console.WriteLine("{0} converts to {1}.", trueFlag,
Convert.ToSByte(trueFlag));
// The example displays the following output:
// false converts to 0.
// true converts to 1.
Dim falseFlag As Boolean = False
Dim trueFlag As Boolean = True
Console.WriteLine("{0} converts to {1}.", falseFlag, _
Convert.ToSByte(falseFlag))
Console.WriteLine("{0} converts to {1}.", trueFlag, _
Convert.ToSByte(trueFlag))
' The example displays the following output:
' False converts to 0.
' True converts to 1.
ToSByte(Double)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert den Wert der angegebenen Gleitkommazahl mit doppelter Genauigkeit in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified double-precision floating-point number to an equivalent 8-bit signed integer.
public:
static System::SByte ToSByte(double value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (double value);
static member ToSByte : double -> sbyte
Public Shared Function ToSByte (value As Double) As SByte
Parameter
- value
- Double
Die zu konvertierende Gleitkommazahl mit doppelter Genauigkeit.The double-precision floating-point number to convert.
Gibt zurück
value
, auf die nächste 8-Bit-Ganzzahl mit Vorzeichen gerundet.value
, rounded to the nearest 8-bit signed integer. Wenn value
genau zwischen zwei ganzen Zahlen liegt, wird die gerade Zahl zurückgegeben (d. h. 4,5 wird in 4 und 5,5 in 6 konvertiert).If value
is halfway between two whole numbers, the even number is returned; that is, 4.5 is converted to 4, and 5.5 is converted to 6.
- Attribute
Ausnahmen
value
ist größer als MaxValue oder kleiner als MinValue.value
is greater than MaxValue or less than MinValue.
Beispiele
Im folgenden Beispiel wird versucht, jedes Element in einem Array von Double-Werten in ein Byte mit Vorzeichen zu konvertieren.The following example attempts to convert each element in an array of Double values to a signed byte.
double[] numbers = { Double.MinValue, -129.5, -12.7, 0, 16,
103.6, 255.0, 1.63509e17, Double.MaxValue};
sbyte result;
foreach (double number in numbers)
{
try {
result = Convert.ToSByte(number);
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
number.GetType().Name, number,
result.GetType().Name, result);
}
catch (OverflowException) {
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.",
number.GetType().Name, number);
}
}
// The example displays the following output:
// The Double value -1.79769313486232E+308 is outside the range of the SByte type.
// The Double value -129.5 is outside the range of the SByte type.
// Converted the Double value -12.7 to the SByte value -13.
// Converted the Double value 0 to the SByte value 0.
// Converted the Double value 16 to the SByte value 16.
// Converted the Double value 103.6 to the SByte value 104.
// The Double value 255 is outside the range of the SByte type.
// The Double value 1.63509E+17 is outside the range of the SByte type.
// The Double value 1.79769313486232E+308 is outside the range of the SByte type.
Dim numbers() As Double = { Double.MinValue, -129.5, -12.7, 0, 16, _
103.6, 255.0, 1.63509e17, Double.MaxValue}
Dim result As SByte
For Each number As Double In numbers
Try
result = Convert.ToSByte(number)
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
number.GetType().Name, number, _
result.GetType().Name, result)
Catch e As OverflowException
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.", _
number.GetType().Name, number)
End Try
Next
' The example displays the following output:
' The Double value -1.79769313486232E+308 is outside the range of the SByte type.
' The Double value -129.5 is outside the range of the SByte type.
' Converted the Double value -12.7 to the SByte value -13.
' Converted the Double value 0 to the SByte value 0.
' Converted the Double value 16 to the SByte value 16.
' Converted the Double value 103.6 to the SByte value 104.
' The Double value 255 is outside the range of the SByte type.
' The Double value 1.63509E+17 is outside the range of the SByte type.
' The Double value 1.79769313486232E+308 is outside the range of the SByte type.
Siehe auch
ToSByte(Int16)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert den Wert der angegebenen 16-Bit-Ganzzahl mit Vorzeichen in die entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified 16-bit signed integer to the equivalent 8-bit signed integer.
public:
static System::SByte ToSByte(short value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (short value);
static member ToSByte : int16 -> sbyte
Public Shared Function ToSByte (value As Short) As SByte
Parameter
- value
- Int16
Die zu konvertierende 16-Bit-Ganzzahl mit Vorzeichen.The 16-bit signed integer to convert.
Gibt zurück
Eine 8-Bit-Ganzzahl mit Vorzeichen, die value
entspricht.An 8-bit signed integer that is equivalent to value
.
- Attribute
Ausnahmen
value
ist größer als MaxValue oder kleiner als MinValue.value
is greater than MaxValue or less than MinValue.
Beispiele
Im folgenden Beispiel wird versucht, jedes Element in einem Array von 16-Bit-Ganzzahlen mit Vorzeichen in ein Byte mit Vorzeichen zu konvertieren.The following example attempts to convert each element in an array of signed 16-bit integers to a signed byte.
short[] numbers = { Int16.MinValue, -1, 0, 121, 340, Int16.MaxValue };
sbyte result;
foreach (short number in numbers)
{
try {
result = Convert.ToSByte(number);
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
number.GetType().Name, number,
result.GetType().Name, result);
}
catch (OverflowException) {
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.",
number.GetType().Name, number);
}
}
// The example displays the following output:
// The Int16 value -32768 is outside the range of the SByte type.
// Converted the Int16 value -1 to the SByte value -1.
// Converted the Int16 value 0 to the SByte value 0.
// Converted the Int16 value 121 to the SByte value 121.
// The Int16 value 340 is outside the range of the SByte type.
// The Int16 value 32767 is outside the range of the SByte type.
Dim numbers() As Short = { Int16.MinValue, -1, 0, 121, 340, Int16.MaxValue }
Dim result As SByte
For Each number As Short In numbers
Try
result = Convert.ToSByte(number)
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
number.GetType().Name, number, _
result.GetType().Name, result)
Catch e As OverflowException
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.", _
number.GetType().Name, number)
End Try
Next
' The example displays the following output:
' The Int16 value -32768 is outside the range of the SByte type.
' Converted the Int16 value -1 to the SByte value -1.
' Converted the Int16 value 0 to the SByte value 0.
' Converted the Int16 value 121 to the SByte value 121.
' The Int16 value 340 is outside the range of the SByte type.
' The Int16 value 32767 is outside the range of the SByte type.
ToSByte(Decimal)
Wichtig
Diese API ist nicht CLS-kompatibel.
Konvertiert den Wert der angegebenen Dezimalzahl in eine entsprechende 8-Bit-Ganzzahl mit Vorzeichen.Converts the value of the specified decimal number to an equivalent 8-bit signed integer.
public:
static System::SByte ToSByte(System::Decimal value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (decimal value);
static member ToSByte : decimal -> sbyte
Public Shared Function ToSByte (value As Decimal) As SByte
Parameter
- value
- Decimal
Die zu konvertierende Dezimalzahl.The decimal number to convert.
Gibt zurück
value
, auf die nächste 8-Bit-Ganzzahl mit Vorzeichen gerundet.value
, rounded to the nearest 8-bit signed integer. Wenn value
genau zwischen zwei ganzen Zahlen liegt, wird die gerade Zahl zurückgegeben (d. h. 4,5 wird in 4 und 5,5 in 6 konvertiert).If value
is halfway between two whole numbers, the even number is returned; that is, 4.5 is converted to 4, and 5.5 is converted to 6.
- Attribute
Ausnahmen
value
ist größer als MaxValue oder kleiner als MinValue.value
is greater than MaxValue or less than MinValue.
Beispiele
Im folgenden Beispiel wird versucht, jedes Element in einem Array von Decimal-Werten in ein Byte mit Vorzeichen zu konvertieren.The following example attempts to convert each element in an array of Decimal values to a signed byte.
decimal[] numbers = { Decimal.MinValue, -129.5m, -12.7m, 0m, 16m,
103.6m, 255.0m, Decimal.MaxValue };
sbyte result;
foreach (decimal number in numbers)
{
try {
result = Convert.ToSByte(number);
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.",
number.GetType().Name, number,
result.GetType().Name, result);
}
catch (OverflowException) {
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.",
number.GetType().Name, number);
}
}
// The example displays the following output:
// The Decimal value -79228162514264337593543950335 is outside the range of the SByte type.
// The Decimal value -129.5 is outside the range of the SByte type.
// Converted the Decimal value -12.7 to the SByte value -13.
// Converted the Decimal value 0 to the SByte value 0.
// Converted the Decimal value 16 to the SByte value 16.
// Converted the Decimal value 103.6 to the SByte value 104.
// The Decimal value 255 is outside the range of the SByte type.
// The Decimal value 79228162514264337593543950335 is outside the range of the SByte type.
Dim numbers() As Decimal = { Decimal.MinValue, -129.5d, -12.7d, 0d, 16d, _
103.6d, 255.0d, Decimal.MaxValue }
Dim result As SByte
For Each number As Decimal In numbers
Try
result = Convert.ToSByte(number)
Console.WriteLine("Converted the {0} value {1} to the {2} value {3}.", _
number.GetType().Name, number, _
result.GetType().Name, result)
Catch e As OverflowException
Console.WriteLine("The {0} value {1} is outside the range of the SByte type.", _
number.GetType().Name, number)
End Try
Next
' The example displays the following output:
' The Decimal value -79228162514264337593543950335 is outside the range of the SByte type.
' The Decimal value -129.5 is outside the range of the SByte type.
' Converted the Decimal value -12.7 to the SByte value -13.
' Converted the Decimal value 0 to the SByte value 0.
' Converted the Decimal value 16 to the SByte value 16.
' Converted the Decimal value 103.6 to the SByte value 104.
' The Decimal value 255 is outside the range of the SByte type.
' The Decimal value 79228162514264337593543950335 is outside the range of the SByte type.