Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese Funktionen werden inline kompiliert, d. h. der Konvertierungscode ist Teil des Codes, der den Ausdruck auswertet. Manchmal gibt es keinen Aufruf an eine Prozedur, um die Konvertierung auszuführen, wodurch die Leistung verbessert wird. Jede Funktion wandelt einen Ausdruck in einen bestimmten Datentyp um.
Syntax
CBool(expression)
CByte(expression)
CChar(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
CLng(expression)
CObj(expression)
CSByte(expression)
CShort(expression)
CSng(expression)
CStr(expression)
CUInt(expression)
CULng(expression)
CUShort(expression)
Teil
expression
Erforderlich. Ein beliebiger Ausdruck des Quelldatentyps.
Rückgabewert-Datentyp
Der Funktionsname bestimmt den Datentyp des zurückgegebenen Werts, wie in der folgenden Tabelle dargestellt.
| Funktionsname | Datentyp zurückgeben | Bereich für expression Argument |
|---|---|---|
CBool |
Boolescher Datentyp | Ein beliebiger gültiger Char oder String numerischer Ausdruck. |
CByte |
Byte-Datentyp |
Byte.MinValue (0) bis Byte.MaxValue (255) (nicht signiert); Bruchteile werden gerundet.1 Ab Visual Basic 15.8 optimiert Visual Basic die Leistung der Gleitkomma-zu-Byte-Konvertierung mit der CByte Funktion. Weitere Informationen finden Sie im Abschnitt "Hinweise ". Ein Beispiel finden Sie im Abschnitt "CInt Example ". |
CChar |
Char-Datentyp | Ein beliebiger gültiger Char oder String Ausdruck; nur das erste Zeichen eines String konvertiert wird; der Wert kann 0 bis 65535 (nicht signiert) sein. |
CDate |
Datumsdatentyp | Jede gültige Darstellung eines Datums und einer Uhrzeit. |
CDbl |
Double-Datentyp | -1,79769313486231570E+308 bis -4,94065645841246544E-324 für negative Werte; 4.9406564584124654E-324 bis 1,79769313486231570E+308 für positive Werte. |
CDec |
Dezimaler Datentyp | +/-79.228.162.514.264.337.593.543.950.335 für nullskalierte Zahlen, d. h. Zahlen ohne Dezimalstellen. Bei Zahlen mit 28 Dezimalstellen lautet der Bereich +/-7,9228162514264375935439503335. Die kleinste mögliche Nicht-Null-Zahl ist 0,000000000000000000000000001 (+/-1E-28). |
CInt |
Integer-Datentyp |
Int32.MinValue (-2.147.483.648) bis Int32.MaxValue (2.147.483.647); Bruchteile werden gerundet.1 Ab Visual Basic 15.8 optimiert Visual Basic die Leistung der Gleitkommakonvertierung in ganzzahlige Konvertierung mit der CInt Funktion. Weitere Informationen finden Sie im Abschnitt "Hinweise ". Ein Beispiel finden Sie im Abschnitt "CInt Example ". |
CLng |
Long-Datentyp |
Int64.MinValue (-9.223.372.036.854.775.808) bis Int64.MaxValue (9.223.372.036.854.775.807); Bruchteile werden gerundet.1 Ab Visual Basic 15.8 optimiert Visual Basic die Leistung der Gleitkomma-Konvertierung auf 64-Bit-Ganzzahl mit der CLng Funktion. Weitere Informationen finden Sie im Abschnitt "Hinweise ". Ein Beispiel finden Sie im Abschnitt "CInt Example ". |
CObj |
Objektdatentyp | Ein beliebiger gültiger Ausdruck. |
CSByte |
SByte-Datentyp |
SByte.MinValue (-128) bis SByte.MaxValue (127); Bruchteile werden gerundet.1 Ab Visual Basic 15.8 optimiert Visual Basic die Leistung der Gleitkommakonvertierung auf signierte Byte mit der CSByte Funktion. Weitere Informationen finden Sie im Abschnitt "Hinweise ". Ein Beispiel finden Sie im Abschnitt "CInt Example ". |
CShort |
Kurzer Datentyp |
Int16.MinValue (-32.768) bis Int16.MaxValue (32.767); Bruchteile werden gerundet.1 Ab Visual Basic 15.8 optimiert Visual Basic die Leistung der Gleitkommakonvertierung in eine 16-Bit-Ganzzahlkonvertierung mit der CShort Funktion. Weitere Informationen finden Sie im Abschnitt "Hinweise ". Ein Beispiel finden Sie im Abschnitt "CInt Example ". |
CSng |
Einzelner Datentyp | -3,402823E+38 bis -1,401298E-45 für negative Werte; 1.401298E-45 bis 3.402823E+38 für positive Werte. |
CStr |
String-Datentyp | Gibt zurück, für CStr die das expression Argument abhängt. Siehe Rückgabewerte für die CStr-Funktion. |
CUInt |
UInteger-DatenTyp |
UInt32.MinValue (0) bis UInt32.MaxValue (4.294.967.295) (nicht signiert); Bruchteile werden gerundet.1 Ab Visual Basic 15.8 optimiert Visual Basic die Leistung der Gleitkommakonvertierung auf nicht signierte ganzzahlige Konvertierung mit der CUInt Funktion. Weitere Informationen finden Sie im Abschnitt "Hinweise ". Ein Beispiel finden Sie im Abschnitt "CInt Example ". |
CULng |
ULong-Datentyp |
UInt64.MinValue (0) bis UInt64.MaxValue (18.446.744.073.709.551.615) (nicht signiert); Bruchteile werden gerundet.1 Ab Visual Basic 15.8 optimiert Visual Basic die Leistung von Gleitkommazahlen auf nicht signierte lange ganzzahlige Konvertierung mit der CULng Funktion. Weitere Informationen finden Sie im Abschnitt "Hinweise ". Ein Beispiel finden Sie im Abschnitt "CInt Example ". |
CUShort |
UShort-Datentyp |
UInt16.MinValue (0) bis UInt16.MaxValue (65.535) (nicht signiert); Bruchteile werden gerundet.1 Ab Visual Basic 15.8 optimiert Visual Basic die Leistung von Gleitkommastellen auf nicht signierte 16-Bit-Ganzzahlkonvertierung mit der CUShort Funktion. Weitere Informationen finden Sie im Abschnitt "Hinweise ". Ein Beispiel finden Sie im Abschnitt "CInt Example ". |
1 Bruchteile können einem speziellen Rundungstyp unterliegen, der als Banker-Rundung bezeichnet wird. Weitere Informationen finden Sie unter "Hinweise".
Bemerkungen
In der Regel sollten Sie die Visual Basic-Typkonvertierungsfunktionen vor den .NET Framework-Methoden verwenden, z ToString(). B. entweder für die Convert Klasse oder für eine einzelne Typstruktur oder Klasse. Die Visual Basic-Funktionen sind für eine optimale Interaktion mit Visual Basic-Code konzipiert, und sie machen ihren Quellcode auch kürzer und einfacher zu lesen. Darüber hinaus erzeugen die .NET Framework-Konvertierungsmethoden nicht immer dieselben Ergebnisse wie die Visual Basic-Funktionen, z. B. beim Konvertieren in BooleanInteger. Weitere Informationen finden Sie unter "Problembehandlung bei Datentypen".
Ab Visual Basic 15.8 ist die Leistung der Gleitkomma-zu-Ganzzahl-Konvertierung optimiert, wenn Sie die SingleDouble von den folgenden Methoden zurückgegebenen Methoden an eine der ganzzahligen Konvertierungsfunktionen übergeben (CByte, , CShort, CInt, CLng, CSByte, CUShort, , CUInt): CULng
- Conversion.Fix(Double)
- Conversion.Fix(Object)
- Conversion.Fix(Single)
- Conversion.Int(Double)
- Conversion.Int(Object)
- Conversion.Int(Single)
- Math.Ceiling(Double)
- Math.Floor(Double)
- Math.Round(Double)
- Math.Truncate(Double)
Diese Optimierung ermöglicht Code, der eine große Anzahl ganzzahliger Konvertierungen ausführt, bis zu doppelt so schnell ausgeführt wird. Im folgenden Beispiel werden diese optimierten Gleitkomma-zu-Ganzzahl-Konvertierungen veranschaulicht:
Dim s As Single = 173.7619
Dim d As Double = s
Dim i1 As Integer = CInt(Fix(s)) ' Result: 173
Dim b1 As Byte = CByte(Int(d)) ' Result: 173
Dim s1 AS Short = CShort(Math.Truncate(s)) ' Result: 173
Dim i2 As Integer = CInt(Math.Ceiling(d)) ' Result: 174
Dim i3 As Integer = CInt(Math.Round(s)) ' Result: 174
Verhalten
Zwang. Im Allgemeinen können Sie die Datentypkonvertierungsfunktionen verwenden, um das Ergebnis eines Vorgangs in einen bestimmten Datentyp anstelle des Standarddatentyps zu konvertieren. Verwenden Sie z. B
CDec. zum Erzwingen der Dezimalarithmetik in Fällen, in denen normalerweise Eine-Genauigkeit, Doppelpräzision oder ganzzahlige Arithmetik stattfindet.Fehler bei Konvertierungen. Wenn sich die
expressionan die Funktion übergebene Funktion außerhalb des Bereichs des Datentyps befindet, in den sie konvertiert werden soll, tritt ein OverflowException .Bruchteile. Wenn Sie einen nichtintegralen Wert in einen integralen Typ konvertieren, entfernen die Ganzzahlkonvertierungsfunktionen (
CByte,CInt, ,CLng,CSByteCShort,CUInt,CULngundCUShort) den Bruchteil und runden den Wert auf die nächste ganze Zahl.Wenn der Bruchteil genau 0,5 ist, runden die Ganzzahlkonvertierungsfunktionen sie auf die nächste gerade ganze Zahl. Beispielsweise rundet 0,5 auf 0 und 1,5 und 2,5 auf 2. Dies wird manchmal als Rounding des Bankers bezeichnet, und sein Zweck besteht darin, eine Verzerrung zu kompensieren, die sich beim Hinzufügen vieler solcher Zahlen ansammeln könnte.
CIntundCLngunterscheiden sich von den Int Funktionen Fix , die den Bruchteil einer Zahl abschneiden und nicht runden. Geben Sie auch immer einen Wert desselben Datentyps zurück,FixIntden Sie übergeben haben.Datums-/Uhrzeitkonvertierungen. Verwenden Sie die IsDate Funktion, um zu ermitteln, ob ein Wert in ein Datum und eine Uhrzeit konvertiert werden kann.
CDateerkennt Datumsliterale und Zeitliterale, aber keine numerischen Werte. Zum Konvertieren eines Visual Basic 6.0-WertsDatein einenDateWert in Visual Basic 2005 oder höher können Sie die DateTime.FromOADate Methode verwenden.Neutrale Datums-/Uhrzeitwerte. Der Datentyp "Datum " enthält immer Sowohl Datums- als auch Uhrzeitinformationen. Für Die Typkonvertierung betrachtet Visual Basic 1/1/0001 (1. Januar des Jahres 1) als neutralen Wert für das Datum und 00:00:00 (Mitternacht) als neutralen Wert für die Zeit. Wenn Sie einen
DateWert in eine Zeichenfolge konvertieren,CStrenthält die resultierende Zeichenfolge keine neutralen Werte. Wenn Sie beispielsweise in eine Zeichenfolge konvertieren#January 1, 0001 9:30:00#, lautet das Ergebnis "9:30:00 Uhr". Die Datumsinformationen werden unterdrückt. Die Datumsinformationen sind jedoch weiterhin im ursprünglichenDateWert vorhanden und können mit Funktionen wie DatePart z. B. Funktion wiederhergestellt werden.Kulturempfindlichkeit. Die Typkonvertierungsfunktionen, die Zeichenfolgen umfassen, führen Konvertierungen basierend auf den aktuellen Kultureinstellungen für die Anwendung aus. Erkennt z. B
CDate. Datumsformate gemäß der Gebietsschemaeinstellung Ihres Systems. Sie müssen den Tag, den Monat und das Jahr in der richtigen Reihenfolge für Ihr Gebietsschema angeben, oder das Datum wird möglicherweise nicht richtig interpretiert. Ein langes Datumsformat wird nicht erkannt, wenn es eine Zeichenfolge für den Wochentag enthält, z. B. "Mittwoch".Wenn Sie in oder aus einer Zeichenfolgendarstellung eines Werts in einem anderen Format als dem von Ihrem Gebietsschema angegebenen konvertieren müssen, können Sie die Konvertierungsfunktionen des Visual Basic-Typs nicht verwenden. Verwenden Sie dazu die
ToString(IFormatProvider)Methoden undParse(String, IFormatProvider)Methoden des Typs dieses Werts. Verwenden Sie Double.Parse z. B. beim Konvertieren einer Zeichenfolge in eineDoubleZeichenfolge und beim Double.ToString Konvertieren eines TypwertsDoublein eine Zeichenfolge.
CType-Operator
Der CType-Operator verwendet ein zweites Argument, typenameund es wird eine Koerzenz expression verwendet, typename wobei typenamees sich um einen beliebigen Datentyp, eine Struktur, eine Klasse oder eine Schnittstelle handeln kann, in die eine gültige Konvertierung vorhanden ist.
Vergleichen Sie CType mit den anderen Typkonvertierungskeywords unter DirectCast-Operator und TryCast-Operator.
CBool-Beispiel
Im folgenden Beispiel wird die CBool Funktion verwendet, um Ausdrücke in Boolean Werte zu konvertieren. Wenn ein Ausdruck einen Wert ungleich Null auswertet, CBool wird dieser zurückgegeben True; andernfalls wird er zurückgegeben False.
Dim a, b, c As Integer
Dim check As Boolean
a = 5
b = 5
' The following line of code sets check to True.
check = CBool(a = b)
c = 0
' The following line of code sets check to False.
check = CBool(c)
CByte-Beispiel
Im folgenden Beispiel wird die CByte Funktion verwendet, um einen Ausdruck in einen Byte.
Dim aDouble As Double
Dim aByte As Byte
aDouble = 125.5678
' The following line of code sets aByte to 126.
aByte = CByte(aDouble)
Beispiel für CChar
Im folgenden Beispiel wird die CChar Funktion verwendet, um das erste Zeichen eines Ausdrucks in einen StringChar Typ zu konvertieren.
Dim aString As String
Dim aChar As Char
' CChar converts only the first character of the string.
aString = "BCD"
' The following line of code sets aChar to "B".
aChar = CChar(aString)
Das Eingabeargument muss CChar vom Datentyp oder Charvom Datentyp String sein. Sie können eine Zahl nicht CChar in ein Zeichen konvertieren, da CChar kein numerischer Datentyp akzeptiert werden kann. Das folgende Beispiel ruft eine Zahl ab, die einen Codepunkt (Zeichencode) darstellt, und konvertiert sie in das entsprechende Zeichen. Sie verwendet die InputBox Funktion, um die Zeichenfolge der Ziffern abzurufen, CInt die Zeichenfolge in den Typ Integerzu konvertieren und ChrW die Zahl in Typ Charzu konvertieren.
Dim someDigits As String
Dim codePoint As Integer
Dim thisChar As Char
someDigits = InputBox("Enter code point of character:")
codePoint = CInt(someDigits)
' The following line of code sets thisChar to the Char value of codePoint.
thisChar = ChrW(codePoint)
CDate-Beispiel
Im folgenden Beispiel wird die CDate Funktion verwendet, um Zeichenfolgen in Werte zu Date konvertieren. Im Allgemeinen wird das Hartcodieren von Datums- und Uhrzeitangaben als Zeichenfolgen (wie in diesem Beispiel gezeigt) nicht empfohlen. Verwenden Sie stattdessen Datumsliterale und Uhrzeitliterale wie #Feb 12, 1969# und #4:45:23 PM#.
Dim aDateString, aTimeString As String
Dim aDate, aTime As Date
aDateString = "February 12, 1969"
aTimeString = "4:35:47 PM"
' The following line of code sets aDate to a Date value.
aDate = CDate(aDateString)
' The following line of code sets aTime to Date value.
aTime = CDate(aTimeString)
CDbl-Beispiel
Dim aDec As Decimal
Dim aDbl As Double
' The following line of code uses the literal type character D to make aDec a Decimal.
aDec = 234.456784D
' The following line of code sets aDbl to 1.9225456288E+1.
aDbl = CDbl(aDec * 8.2D * 0.01D)
CDec-Beispiel
Im folgenden Beispiel wird die CDec Funktion verwendet, um einen numerischen Wert in Decimal.
Dim aDouble As Double
Dim aDecimal As Decimal
aDouble = 10000000.0587
' The following line of code sets aDecimal to 10000000.0587.
aDecimal = CDec(aDouble)
CInt-Beispiel
Im folgenden Beispiel wird die CInt Funktion verwendet, um einen Wert in Integer.
Dim aDbl As Double
Dim anInt As Integer
aDbl = 2345.5678
' The following line of code sets anInt to 2346.
anInt = CInt(aDbl)
CLng-Beispiel
Im folgenden Beispiel wird die CLng Funktion verwendet, um Werte in Long.
Dim aDbl1, aDbl2 As Double
Dim aLng1, aLng2 As Long
aDbl1 = 25427.45
aDbl2 = 25427.55
' The following line of code sets aLng1 to 25427.
aLng1 = CLng(aDbl1)
' The following line of code sets aLng2 to 25428.
aLng2 = CLng(aDbl2)
CObj-Beispiel
Im folgenden Beispiel wird die CObj Funktion verwendet, um einen numerischen Wert in Object. Die Object Variable selbst enthält nur einen Vierbytezeiger, der auf den Double ihm zugewiesenen Wert verweist.
Dim aDouble As Double
Dim anObject As Object
aDouble = 2.7182818284
' The following line of code sets anObject to a pointer to aDouble.
anObject = CObj(aDouble)
CSByte-Beispiel
Im folgenden Beispiel wird die CSByte Funktion verwendet, um einen numerischen Wert in SByte.
Dim aDouble As Double
Dim anSByte As SByte
aDouble = 39.501
' The following line of code sets anSByte to 40.
anSByte = CSByte(aDouble)
CShort-Beispiel
Im folgenden Beispiel wird die CShort Funktion verwendet, um einen numerischen Wert in Short.
Dim aByte As Byte
Dim aShort As Short
aByte = 100
' The following line of code sets aShort to 100.
aShort = CShort(aByte)
CSng-Beispiel
Im folgenden Beispiel wird die CSng Funktion verwendet, um Werte in Single.
Dim aDouble1, aDouble2 As Double
Dim aSingle1, aSingle2 As Single
aDouble1 = 75.3421105
aDouble2 = 75.3421567
' The following line of code sets aSingle1 to 75.34211.
aSingle1 = CSng(aDouble1)
' The following line of code sets aSingle2 to 75.34216.
aSingle2 = CSng(aDouble2)
CStr-Beispiel
Im folgenden Beispiel wird die CStr Funktion verwendet, um einen numerischen Wert in String.
Dim aDouble As Double
Dim aString As String
aDouble = 437.324
' The following line of code sets aString to "437.324".
aString = CStr(aDouble)
Im folgenden Beispiel wird die CStr Funktion verwendet, um Werte in Date Werte zu konvertierenString.
Dim aDate As Date
Dim aString As String
' The following line of code generates a COMPILER ERROR because of invalid format.
' aDate = #February 12, 1969 00:00:00#
' Date literals must be in the format #m/d/yyyy# or they are invalid.
' The following line of code sets the time component of aDate to midnight.
aDate = #2/12/1969#
' The following conversion suppresses the neutral time value of 00:00:00.
' The following line of code sets aString to "2/12/1969".
aString = CStr(aDate)
' The following line of code sets the time component of aDate to one second past midnight.
aDate = #2/12/1969 12:00:01 AM#
' The time component becomes part of the converted value.
' The following line of code sets aString to "2/12/1969 12:00:01 AM".
aString = CStr(aDate)
CStr Rendert immer einen Date Wert im standard kurzen Format für das aktuelle Gebietsschema, z. B. "15.06.2003 4:35:47".
CStr Unterdrückt jedoch die neutralen Werte von 1/1/0001 für das Datum und 00:00:00 für die Uhrzeit.
Weitere Details zu den von CStrihnen zurückgegebenen Werten finden Sie unter Rückgabewerte für die CStr-Funktion.
CUInt-Beispiel
Im folgenden Beispiel wird die CUInt Funktion verwendet, um einen numerischen Wert in UInteger.
Dim aDouble As Double
Dim aUInteger As UInteger
aDouble = 39.501
' The following line of code sets aUInteger to 40.
aUInteger = CUInt(aDouble)
CULng-Beispiel
Im folgenden Beispiel wird die CULng Funktion verwendet, um einen numerischen Wert in ULong.
Dim aDouble As Double
Dim aULong As ULong
aDouble = 39.501
' The following line of code sets aULong to 40.
aULong = CULng(aDouble)
CUShort-Beispiel
Im folgenden Beispiel wird die CUShort Funktion verwendet, um einen numerischen Wert in UShort.
Dim aDouble As Double
Dim aUShort As UShort
aDouble = 39.501
' The following line of code sets aUShort to 40.
aUShort = CUShort(aDouble)