|
|||||||
Функции преобразования типов (Visual Basic)
Время создания: 31.07.2019 23:08
Текстовые метки: VBA,Visual Studio 2013 ,Type
Раздел: Разные закладки - VBA - Меню VB-справка
Запись: xintrea/mytetra_db_adgaver_new/master/base/1513136255i11it2vbkn/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Функции преобразования типов (Visual Basic) Эти функции компилируются путем подстановки кода, т. е. код преобразования является частью кода, вычисляющего выражение. В некоторых случаях отсутствует вызов процедуры для выполнения преобразований, что повышает производительность. Каждая функция приводит выражение к определенному типу данных. 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) Часть Обязательный. Любое выражение исходного типа данных. Тип данных возвращаемого значения. Имя функции определяет возвращаемый тип, как показано в следующей таблице. Пример В следующем примере преобразуется переменная Object в Integer и String. Public Sub objectConversion(ByVal anObject As Object) anInteger = CType(anObject, Integer) aString = CType(anObject, String) 1 Дробные части могут быть подчиняться специальному типу округления под названием банковское округление. См. примечания для дополнительных сведений. Заметки Как правило предпочтительнее использовать функции преобразования типа Visual Basic, чем методы .NET Framework, например ToString() в классе Convert или в отдельном типе структуры или класса. Функции языка Visual Basic предназначены для оптимального взаимодействия с Visual Basic, и они также сделают исходный код короче и облегчат его чтение. Кроме того методы преобразования .NET Framework не всегда получают тот же результат, что функции Visual Basic, например при преобразовании Boolean к Integer. Дополнительные сведения см. в разделе Устранение неполадок, связанных с типами данных (Visual Basic) . Поведение
Если дробная часть равна точно 0,5, то функции преобразования целых чисел округлят его до ближайшего четного целого числа. Например, 0,5 округляется до 0, а 1,5 и 2,5 округляются до 2. Это иногда называется банковским округлением, и его целью является компенсация сдвигов, которые могут накапливаться при сложении многих таких чисел. CInt и CLng отличаются от функций Int и Fix , которые вместо округления отсекают дробную часть числа. Кроме того Fix и Int всегда возвращают значение того же типа данных, что и переданное значение. Если требуется преобразовать в или из строкового представление значения в формате, отличном от задаваемого языка, то невозможно использовать функции преобразования типа Visual Basic. Чтобы сделать это, используйте методы ToString(IFormatProvider) и Parse(String, IFormatProvider) для этих типов значений. Например, используйте Double.Parse при преобразовании строки к Double и используйте Double.ToString при преобразовании значения из типа Double в строку. Функция CType Ф ункция CType принимает второй аргумент typename и приводит expression к typename, где typename может быть любым типом данных, структурой, классом или интерфейсом, для которого существует допустимое преобразование. Для сравнения CType с другими зарезервированными словами преобразования типов см. Оператор DirectCast (Visual Basic) и Оператор TryCast (Visual Basic) . Пример использования функции CBool В следующем примере для преобразования к Boolean используется функция CBool. Если результатом вычисления выражения является ненулевое значение, то CBool возвращает True; в противном случае она возвращает False. 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 В следующем примере для преобразования к Byte используется функция CByte. Dim aByte As Byte aDouble = 125.5678 ' The following line of code sets aByte to 126. aByte = CByte(aDouble) Пример использования функции CChar В следующем примере для преобразования первого символа выражения String к типу Char используется функция CChar. 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) Входным аргументом CChar должен быть тип данных Char или String. Невозможно использовать функцию CChar для преобразования числа в символ, поскольку функция CChar не может принимать данные числовых типов. В этом примере получается число, представляющее кодовую позицию (код символа), которое преобразуется в соответствующий символ. Использует функцию InputBox для получения строки цифр, CInt для преобразования строки к типу Integer, а ChrW для преобразования строки к типу Char. 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 В следующем примере для преобразования строк к Date используется функция CDate. Как правило, не рекомендуется жестко кодировать дату и время в виде строк (как показано в этом примере). Вместо этого используйте литералы даты и времени, например #Feb 12, 1969# и #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 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 В следующем примере для преобразования числа к Decimal используется функция CDec. Dim aDecimal As Decimal aDouble = 10000000.0587 ' The following line of code sets aDecimal to 10000000.0587. aDecimal = CDec(aDouble) Пример использования функции CInt В следующем примере для преобразования значения к Integer используется функция CInt. Dim anInt As Integer aDbl = 2345.5678 ' The following line of code sets anInt to 2346. anInt = CInt(aDbl) Пример использования алгоритма CLng В следующем примере для преобразования значения к Long используется функция CLng. 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 В следующем примере для преобразования числа к Object используется функция CObj. Переменная Object содержит только 4-байтовый указатель, указывающий на значение типа Double. Dim anObject As Object aDouble = 2.7182818284 ' The following line of code sets anObject to a pointer to aDouble. anObject = CObj(aDouble) Пример использования функции CSByte В следующем примере для преобразования числа к SByte используется функция CSByte. Dim anSByte As SByte aDouble = 39.501 ' The following line of code sets anSByte to 40. anSByte = CSByte(aDouble) Пример использования функции CShort В следующем примере для преобразования числа к Short используется функция CShort. Dim aShort As Short aByte = 100 ' The following line of code sets aShort to 100. aShort = CShort(aByte) Пример использования алгоритма CSng В следующем примере для преобразования значения к Single используется функция CSng. 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 В следующем примере для преобразования числа к String используется функция CStr. Dim aString As String aDouble = 437.324 ' The following line of code sets aString to "437.324". aString = CStr(aDouble) В следующем примере для преобразования Date к String используется функция CStr. 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 всегда предоставляет значение с типом Date в стандартном кратком формате для текущих региональных параметров, например 6/15/2003 4:35:47 PM. Однако CStr подавляет нейтральные значения 1/1/0001 для даты и 00:00:00 для времени. Более подробно сведения о значениях, возвращаемых CStr, содержатся в разделе Возвращаемые значения функции CStr (Visual Basic) . Пример использования функции CUInt В следующем примере для преобразования числа к UInteger используется функция CUInt. Dim aUInteger As UInteger aDouble = 39.501 ' The following line of code sets aUInteger to 40. aUInteger = CUInt(aDouble) Пример использования функции CULng В следующем примере для преобразования числа к ULong используется функция CULng. Dim aULong As ULong aDouble = 39.501 ' The following line of code sets aULong to 40. aULong = CULng(aDouble) Пример использования функции CShort В следующем примере для преобразования числа к UShort используется функция CUShort. Dim aUShort As UShort aDouble = 39.501 ' The following line of code sets aUShort to 40. aUShort = CUShort(aDouble) См. также Функции преобразования (Visual Basic) Asc AscW Chr ChrW Int Fix Format Hex Oct Str Val Другие ресурсы Преобразование типов в Visual Basic |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|