Funkcje konwersji typu (Visual Basic)
Te funkcje są wbudowane skompilowany, co oznacza, że kod konwersji jest częścią kodu, którego wynikiem jest wyrażenie.Czasami jest Brak wywołania procedury do wykonania konwersji, co znacznie poprawia wydajność.Każda funkcja wymusza traktowanie wyrażenie ma określony typ danych.
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)
Część
- expression
Wymagane.Dowolne wyrażenie typu źródła danych.
Zwraca wartość typu danych
Nazwa funkcji określa typ danych wartości, która zwraca wartość, jak pokazano w poniższej tabeli.
Nazwa funkcji |
Typ zwracanych danych |
Zakres dla expression argument |
---|---|---|
CBool |
Wszelkie ważne Char lub String lub wyrażenia liczbowego. |
|
CByte |
cyfry od 0 do 255 (unsigned); części ułamkowe są zaokrąglane.1 |
|
CChar |
Wszelkie ważne Char lub String wyrażenie; tylko pierwszy znak String jest konwertowany; wartość może być od 0 do 65535 (unsigned). |
|
CDate |
Wszelkie ważne reprezentacja daty i godziny. |
|
CDbl |
-1.79769313486231570E + 308 do - 4.94065645841246544E-324 dla wartości ujemnych; 4.94065645841246544E-324 poprzez 1.79769313486231570E + 308 dla wartości dodatnich. |
|
CDec |
+/-79,228,162,514,264,337,593,543,950,335 dla numerów skalowane zero to znaczy liczby bez miejsc dziesiętnych.Dla liczb z 28 miejscami po przecinku zakres wynosi +/-7.9228162514264337593543950335.Najmniejszą liczbą niezerowa to 0,0000000000000000000000000001 (+/-1E-28). |
|
CInt |
648 do 2 147 483 647; części ułamkowe są zaokrąglane.1 |
|
CLng |
-9,223,372,036,854,775,808 poprzez 9,223,372,036,854,775,807; części ułamkowe są zaokrąglane.1 |
|
CObj |
Dowolne prawidłowe wyrażenie. |
|
CSByte |
-128 do 127; części ułamkowe są zaokrąglane.1 |
|
CShort |
-32 768 do 32 767; części ułamkowe są zaokrąglane.1 |
|
CSng |
-3.402823E + 38 do - 1, 401298E-45 dla wartości ujemnych; 1, 401298E-45, poprzez 3.402823E + 38 dla wartości dodatnich. |
|
CStr |
Zwraca dla CStr zależy od expression argument.See Wartości zwracane funkcji CStr (Visual Basic). |
|
CUInt |
cyfry od 0 do 4 294 967 295 (unsigned); części ułamkowe są zaokrąglane.1 |
|
CULng |
cyfry od 0 do 18,446,744,073,709,551,615 (unsigned); części ułamkowe są zaokrąglane.1 |
|
CUShort |
cyfry od 0 do 65 535, (unsigned); części ułamkowe są zaokrąglane.1 |
1 Części ułamkowe mogą podlegać specjalnym typem zaokrąglenia zwane zaokrąglania bankowej.Aby uzyskać więcej informacji, zobacz temat "Uwagi".
Uwagi
Jako zasadę, należy używać funkcji konwersji typu języka Visual Basic uprzywilejowanych względem.NET Framework metod, takich jak ToString(), albo na Convert klasy lub struktury poszczególnych typu lub klasy.Funkcje języka Visual Basic są przeznaczone dla optymalnego interakcji z kodu języka Visual Basic i dokonają kodu źródłowego krótsze i łatwiejsze do odczytania.Ponadto.Metody konwersji NET Framework nie zawsze działają tak samo jak funkcje języka Visual Basic, na przykład podczas konwertowania Boolean do Integer.Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z typów danych (Visual Basic).
Zachowanie
Przymus. Ogólnie rzecz biorąc można użyć funkcji konwersji typu danych do zmuszania wynik operacji do określonego typu danych, zamiast domyślnego typu danych.Na przykład, użyj CDec do wymuszenia arytmetyka dziesiętna w przypadkach gdy pojedynczej precyzji, podwójnej precyzji lub arytmetyka byłyby normalnie mieć miejsce.
Konwersje nie powiodło się. Jeśli expression przekazany do funkcji jest spoza zakresu typu danych, do których ma być konwertowane, OverflowException występuje.
Części ułamkowej. Podczas konwertowania wartości nonintegral integralną wpisz, funkcje konwersji integer (CByte, CInt, CLng, CSByte, CShort, CUInt, CULng, i CUShort) usunąć część ułamkowa i zaokrąglić do najbliższej liczby całkowitej wartości.
Jeśli część ułamkowa wynosi dokładnie 0,5, funkcje konwersji liczbą całkowitą zaokrąglanie go do najbliższej parzystej liczby całkowitej.Na przykład 0,5 zaokrągla się do 0 i 1.5 i 2.5, które zarówno okrągłe 2.Jest on czasem nazywany zaokrąglania bankowej, i jego celem jest zrekompensowanie stronniczości, która mogłaby gromadzone podczas dodawania takie numery razem.
CInti CLng różnią się od Int i Fix funkcji, które obciąć zamiast okrągłe część ułamkową liczby.Ponadto Fix i Int zawsze zwraca wartość tego samego typu danych, jak przekazać w.
Data/Godzina konwersji. Użyj IsDate funkcji, jeśli wartość można przekonwertować na datę i godzinę.CDaterozpoznaje literały dat i literały godziny, ale nie numerycznych wartości.Aby przekonwertować programu Visual Basic 6.0 Date wartości Date wartość w języku Visual Basic 2005 lub nowszej wersji, można użyć DateTime.FromOADate metody.
Neutralny wartości daty i godziny.Typ danych Data (Visual Basic) Zawsze zawiera informacje zarówno datę i godzinę.Do celów konwersji typu, Visual Basic uważa za 0001/1/1 (1 stycznia roku, 1) wartość neutralnej dla daty i 00: 00: 00 (północ) do chwili wartość neutralnej.Po skonwertowaniu Date wartość string, CStr nie zawiera wartości neutralnej wynikowy ciąg znaków.Na przykład, jeśli można przekonwertować #January 1, 0001 9:30:00# ciąg, wynik jest "9: 30: 00 AM"; informacje o dacie jest pomijane.Jednakże informacje o dacie jest nadal obecny w oryginale Date wartości i można odzyskać z funkcji takich jak DatePart funkcji.
Czułość kultury. Funkcje konwersji typu obejmujących ciągi wykonać konwersji na podstawie bieżących ustawień kultury dla aplikacji.Na przykład CDate rozpoznaje formaty daty zgodnie z ustawień regionalnych systemu.Należy podać dzień, miesiąc i rok, w odpowiedniej kolejności dla ustawień regionalnych lub daty nie mogą być poprawnie interpretowane.Format daty długiej nie jest rozpoznawany, jeśli zawiera ciąg dnia tygodnia, takie jak "Środa".
Jeśli trzeba konwertować do lub z ciągu reprezentującego wartość w formacie innym niż określony przez ustawienia regionalne, nie można użyć funkcji konwersji typu języka Visual Basic.Aby to zrobić, użyj ToString(IFormatProvider) i Parse(String, IFormatProvider) metod typu tej wartości.Na przykład użyć Double.Parse podczas konwertowania ciągu do Doublei Double.ToString podczas konwersji wartości typu Double na ciąg.
Funkcja CType
Funkcji CType przyjmuje drugi argument, typenamei wymusza traktowanie expression do typename, gdzie typename może być typu danych, struktura, klasy lub interfejsu, do którego istnieje prawidłowy konwersji.
Dla porównania z CType z innego typu konwersji kluczowych, zobacz Operator DirectCast (Visual Basic) i Operator TryCast (Visual Basic).
Przykład CBool
W poniższym przykładzie użyto CBool funkcji konwersji wyrażenia do Boolean wartości.Jeśli wyrażenie ma wartość różną od zera, CBool zwraca True; w przeciwnym razie zwraca 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)
Przykład CByte
W poniższym przykładzie użyto CByte funkcji do przekonwertowania wyrażenia do Byte.
Dim aDouble As Double
Dim aByte As Byte
aDouble = 125.5678
' The following line of code sets aByte to 126.
aByte = CByte(aDouble)
Przykład CChar
W poniższym przykładzie użyto CChar funkcji konwersji pierwszego znaku String wyrażenie do Char typu.
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)
Argument wejściowy do CChar musi być typu danych Char lub String.Nie można użyć CChar do przekonwertowania liczby znaków, ponieważ CChar nie może zaakceptować typ danych numerycznych.Poniższy przykład uzyskuje liczba reprezentująca punkt kodu (kod znaku) i konwertuje ją na odpowiedni znak.Używa InputBox funkcji w celu uzyskania ciągu cyfr, CInt konwersji ciągu znaków, aby wpisać Integer, i ChrW do konwertowania liczby do wpisz Char.
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)
Przykład CDate
W poniższym przykładzie użyto CDate funkcji konwersji ciągów znaków do Date wartości.Na ogół zakodowane na stałe daty i godziny jako ciągi znaków (jak pokazano w poniższym przykładzie) nie jest zalecane.Użyć literałów dat i godzin, takich jak #Feb 12, 1969 # i # 4: 45: 23 PM #, zamiast niego.
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)
Przykład CDbl
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)
Przykład CDec
W poniższym przykładzie użyto CDec funkcji konwersji wartość liczbową do 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)
Przykład CInt
W poniższym przykładzie użyto CInt funkcji konwersji wartości do Integer.
Dim aDbl As Double
Dim anInt As Integer
aDbl = 2345.5678
' The following line of code sets anInt to 2346.
anInt = CInt(aDbl)
Przykład CLng
W poniższym przykładzie użyto CLng funkcji konwersji wartości do 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)
Przykład CObj
W poniższym przykładzie użyto CObj funkcji konwersji wartość liczbową do Object.Object Samej zmiennej zawiera tylko wskaźnik czterech bajtów, która wskazuje na Double wartość przypisaną do niej.
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)
Przykład CSByte
W poniższym przykładzie użyto CSByte funkcji konwersji wartość liczbową do SByte.
Dim aDouble As Double
Dim anSByte As SByte
aDouble = 39.501
' The following line of code sets anSByte to 40.
anSByte = CSByte(aDouble)
Przykład CShort
W poniższym przykładzie użyto CShort funkcji konwersji wartość liczbową do Short.
Dim aByte As Byte
Dim aShort As Short
aByte = 100
' The following line of code sets aShort to 100.
aShort = CShort(aByte)
Przykład CSng
W poniższym przykładzie użyto CSng funkcji konwersji wartości do 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)
Przykład CStr
W poniższym przykładzie użyto CStr funkcji konwersji wartość liczbową do 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)
W poniższym przykładzie użyto CStr funkcji konwersji Date wartości do String wartości.
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)
CStrzawsze renderuje Date wartość w standardowy format krótki bieżące ustawienia regionalne, na przykład, "15-6-2003 4: 35: 47 PM".Jednakże CStr pomija wartości neutralnej z 1/1/0001 dla daty i 00: 00: 00 czasu.
Aby uzyskać więcej szczegółów na wartości zwracane przez CStr, zobacz Wartości zwracane funkcji CStr (Visual Basic).
Przykład CUInt
W poniższym przykładzie użyto CUInt funkcji konwersji wartość liczbową do UInteger.
Dim aDouble As Double
Dim aUInteger As UInteger
aDouble = 39.501
' The following line of code sets aUInteger to 40.
aUInteger = CUInt(aDouble)
Przykład CULng
W poniższym przykładzie użyto CULng funkcji konwersji wartość liczbową do ULong.
Dim aDouble As Double
Dim aULong As ULong
aDouble = 39.501
' The following line of code sets aULong to 40.
aULong = CULng(aDouble)
Przykład CUShort
W poniższym przykładzie użyto CUShort funkcji konwersji wartość liczbową do UShort.
Dim aDouble As Double
Dim aUShort As UShort
aDouble = 39.501
' The following line of code sets aUShort to 40.
aUShort = CUShort(aDouble)
Zobacz też
Informacje
Funkcje konwersji (Visual Basic)