Есть функции
Имя функции | ВБ 6 [1] [2] | ВБА [3] | VBScript [4] | ВБ .NET | Т-SQL |
---|---|---|---|---|---|
IsArray |
Да | Да | Да | Да | Нет |
IsDate |
Да | Да | Да | Да | Да |
IsDBNull |
Нет | Нет | Нет | Да | Нет |
IsEmpty |
Да | Да | Да | Нет | Нет |
IsError |
Да | Да | Нет | Да | Нет |
IsMissing |
Да | Да | Нет | Нет | Нет |
IsNothing |
Нет | Нет | Нет | Да | Нет |
IsNull |
Да | Да | Да | Нет | Да |
IsNumeric |
Да | Да | Да | Да | Да |
IsObject |
Да | Да | Да | Нет | Нет |
IsReference |
Нет | Нет | Нет | Да | Нет |
The Is
функции (также известные как функции информации о данных , [5] функции проверки данных , [6] или функции тестирования данных [6] ) — это набор функций Microsoft Visual Basic 6 , Visual Basic for Applications , VBScript и Visual Basic .NET . Некоторые из них также предоставляются в Transact-SQL поставщиком данных .NET Framework для Microsoft SQL Server .
Что делают функции
[ редактировать ]Функции представляют собой простые функции проверки данных и типа данных. Функции проверки данных определяют, возможно ли преобразовать или привести значение данных, переданное в качестве аргумента функции, к типу, подразумеваемому именем функции, и возвращают Boolean
запись стоимости, было ли это возможно или нет. (Обратите внимание, что фактические функции преобразования данных, такие как Oct()
выдавать исключения, если преобразование невозможно. Функции проверки позволяют проверить, завершится ли преобразование неудачно, и изменить поток управления программой с помощью оператора if .) True
указывает на то, что преобразование возможно, False
указывает на то, что этого не будет. Аналогично, функции проверки типов возвращают Boolean
запись того, относится ли выражение аргумента к определенному типу.
В Transact-SQL функции возвращают ноль или единицу, а не Boolean
ценности True
и False
.
IsArray(name)
- Эта функция определяет, является ли имя переменной, переданное в качестве ее аргумента, массивом. Обратите внимание, что неинициализированные массивы возвращают
False
из этой функции в Visual Basic .NET. [7] В Visual Basic 6 массивы не являются ссылочными типами, и неинициализированный массив возвращает значениеTrue
из этой функции точно так же, как из инициализированного массива. [8] IsDate(expression)
- Эта функция определяет, можно ли преобразовать выражение, переданное в качестве аргумента, в переменную типа
Date
, или уже имеет типDate
. Неинициализированные переменные типаDate
конечно, можно преобразовать, несмотря на то, что он не инициализирован, поэтому это всегда будет возвращатьTrue
для таких переменных. [9] Обратите внимание, что строки, содержащие помимо даты день недели (например,"Sat, October 12, 2010"
) вернет неудачный результат. [10] В VBScript и Visual Basic .NET процесс преобразования использует настройки локали Microsoft Windows, а это означает, что то, что может быть проанализировано как дата в одной системе, настроенной для использования одного языкового стандарта, может не быть проанализировано как дата в другой системе, настроенной для использования одного языкового стандарта. используйте другую локаль. [11] [12] IsDBNull(expression)
- Эта функция определяет, имеет ли выражение, переданное в качестве аргумента, значение
System.DBNull.Value
. [9] Это эквивалентно Visual Basic 6.IsNull()
функция. [10] Обратите внимание, что невозможно напрямую сравнить выражение равенства сSystem.DBNull
, поскольку любое выражение видаx = DbNull
будет оцениватьDbNull
просто потому, что он содержит ноль.IsDBNull()
это единственный способ проверить равенствоSystem.DBNull
. [12] IsEmpty(expression)
- Эта функция определяет, является ли выражение, переданное в качестве аргумента, неинициализированным вариантом. Обратите внимание, что неинициализированный вариант отличается от варианта, который был инициализирован для хранения
Null
. [13] Хотя функция принимает выражение, а не просто имя переменной, любое выражение, которое не является просто именем переменной, не считается неинициализированным вариантом. [11] Эта функция была доступна в Visual Basic 6, но в Visual Basic .NET она была заменена функциейIsNothing()
функция. [14] В VBScript, если назначен вариантNothing
, эта функция все равно возвращаетFalse
. [15] IsError(expression)
- Эта функция в Visual Basic .NET определяет, является ли выражение, переданное в качестве ее аргумента, объектом исключения, т. е. объектом
System.Exception
класс или один из его подклассов. [7] В Visual Basic 6 функция проверяет, является ли выражение вариантом со специальнымvbError
подтип. [16] IsMissing(name)
- Эта функция определяет, является ли имя переменной, переданное в качестве ее аргумента, необязательным аргументом, который не был передан функции ее вызывающей стороной. Он возвращает
True
только переменная представляет собой вариант, который не был инициализирован. Эта функция существует только в Visual Basic 6. В Visual Basic .NET необязательные параметры должны иметь инициализаторы по умолчанию, и эта функция больше не существует. [17] IsNothing(expression)
- Эта функция определяет, имеет ли выражение, переданное в качестве аргумента, значение
Nothing
. [9] Это простая библиотечная функция (содержащая всего 4 инструкции CIL ), которую можно записать на Visual Basic как: [18] [19]Результатом этого является возвращениеPublic Shared Function IsNothing(ByVal Expression As Object) As Boolean Return (Expression Is Nothing) End Function
False
для всех выражений значений (нессылочных), поскольку они будут заключены в рамках вызова функции в объекты, которые по своей природе не будут нулевыми объектами. [18] [19] Чтобы избежать такого поведения, можно использоватьIS
оператор для сравнения объекта напрямую сNothing
, письмоexpression
IS Nothing
скорее, чемIsNothing(expression)
. Компилятор выдаст ошибку во время компиляции, если сравниваемое выражение является значением, а не ссылочным типом, обнаруживая несоответствие типов во время компиляции, а не просто возвращаяFalse
во время выполнения. [20] Строки являются ссылочными типами в Visual Basic .NET и поэтому могут иметь значение NULL (в отличие от просто пустых строк нулевой длины). Для таких строк эта функция возвращаетTrue
. (Для пустых строк возвращаетсяFalse
.) [21] [18] IsNull(expression)
- Эта функция определяет, имеет ли выражение, переданное в качестве аргумента, значение
Null
. Значение null в любом подвыражении выражения приводит к тому, что все выражение считается нулевым. [15] IsNull(expression1,expression2)
- Эта функция, принимающая два аргумента, специфична для Transact-SQL. В отличие от функции Visual Basic с таким именем, она не возвращает
Boolean
, но вместо этого возвращает первое выражение, если это не такNULL
, иначе второе выражение. [22] Целью функции является замена любогоNULL
ценности с другим, предположительно (но не обязательно) не-NULL
, ценить. [23] Это версия с двумя аргументамиCOALESCE()
. IsNumeric(expression)
- Эта функция определяет, может ли выражение, переданное в качестве ее аргумента, быть преобразовано в число (будь то число).
Short
,Integer
,Long
,Single
,Double
, илиDecimal
) из символа или строки или уже является числом. [24] [25] В Transact-SQL строки можно преобразовать в числа, даже если они содержат символы, которые нельзя ожидать от чисел. Это связано с тем, что Transact-SQL допускает преобразование изmoney
иsmallmoney
типы в числа, а денежные данные в строковой форме могут содержать символы индикатора валюты, такие как '£
' или '$
'символы. [26] То же самое относится и к VBScript, где любая строка, которую можно преобразовать в значение валюты в текущей локали, считается числовой. Однако VBScript не считает дату и время числовыми. [27] IsObject(expression)
- Эта функция определяет, является ли выражение, переданное в качестве аргумента, объектом, а не значением. [4] Это эквивалентно Visual Basic .NET.
IsReference()
функция. [10] IsReference(expression)
- Эта функция определяет, является ли выражение, переданное в качестве аргумента, ссылкой, а не значением. [24] Это эквивалентно Visual Basic 6.
IsObject()
функция. [10]
Ссылки
[ редактировать ]Что поддерживает что
[ редактировать ]- ^ Маркус и Леви 2002 , с. 750–751.
- ^ Роман, Петруша и Ломакс 2002b , стр. 394 и далее..
- ^ Харрис 1999 , с. 402–403.
- ^ Перейти обратно: а б Книттель 2002 , с. 609.
- ^ Харрис 1999 , с. 402.
- ^ Перейти обратно: а б Перри и Хеттихева 1998 , с. 237.
- ^ Перейти обратно: а б Роман, Петруша и Ломакс 2002а , с. 69.
- ^ Роман, Петруша и Ломакс 2002b , стр. 394–395.
- ^ Перейти обратно: а б с Роман, Петруша и Ломакс 2002а , с. 86.
- ^ Перейти обратно: а б с д Петруцсос 2002 , с. 115.
- ^ Перейти обратно: а б Ломакс, Чайлдс и Петруша 2003 , с. 341.
- ^ Перейти обратно: а б Роман, Петруша и Ломакс 2002b , стр. 395.
- ^ Харрис 1999 , с. 416.
- ^ Уэйкфилд и Сондер 2001 , с. 690.
- ^ Перейти обратно: а б Ломакс, Чайлдс и Петруша 2003 , с. 342.
- ^ Роман, Петруша и Ломакс 2002b , стр. 397.
- ^ Петруша 2006 , с. 367 528 637.
- ^ Перейти обратно: а б с Петруша 2006 , с. 438.
- ^ Перейти обратно: а б Стил 2005а .
- ^ Стил 2005b .
- ^ Роман, Петруша и Ломакс 2002b , стр. 394.
- ^ Израиль и Джонс 2001 , с. 476.
- ^ Прайс 2003 , с. 119.
- ^ Перейти обратно: а б Роман, Петруша и Ломакс 2002а , с. 87.
- ^ Петруцсос 2002 , с. 114.
- ^ MSDN и 1 .
- ^ Ломакс, Чайлдс и Петруша 2003 , с. 343.
Использованные источники
[ редактировать ]- Харрис, Мэтью (1999). Сэмс самостоятельно научится программированию в Microsoft Excel 2000 за 21 день . Серия «Сэмс: Научи себя». Сэмс. ISBN 978-0-672-31543-5 .
- Израиль, Марк; Джонс, Дж. Стивен (2001). MCSE: Учебное пособие по проектированию SQL Server 2000 . Серия руководств по сертификации. Джон Уайли и сыновья. ISBN 978-0-7821-2942-7 .
- Книттел, Брайан (2002). «Справочник по VBScript». Windows XP под капотом . Издательство Que. ISBN 978-0-7897-2733-6 .
- Ломакс, Пол; Чайлдс, Мэтт; Петруша, Рональд (2003). Коротко о VBScript . В двух словах (2-е изд.). O'Reilly Media, Inc. ISBN 978-0-596-00488-0 .
- Маркус, Уильям; Леви, Алекс (2002). Программирование на Visual Basic 6 . Тата МакГроу-Хилл. ISBN 978-0-07-040290-4 .
- Перри, Грег М.; Хеттихева, Санджая (1998). Сэмс освоит Visual Basic 6 за 24 часа . Научите себя за 24 часа (2-е изд.). Издательство Самс. ISBN 978-0-672-31533-6 .
- Петруцос, Евангелос (2002). Освоение Visual Basic.NET . Мастеринг серии. Джон Уайли и сыновья. ISBN 978-0-7821-2877-2 .
- Петруша, Рональд (2006). Visual Basic 2005: полный справочник . МакГроу-Хилл Профессионал. ISBN 978-0-07-226033-5 .
- Прайс, Джейсон (2003). Освоение программирования баз данных на C# . Джон Уайли и сыновья. ISBN 978-0-7821-4183-2 .
- Роман, Стивен; Петруша, Рон; Ломакс, Пол (2002a). Карманный справочник по языку VB.NET . O'Reilly Media, Inc. ISBN 978-0-596-00428-6 .
- Роман, Стивен; Петруша, Рон; Ломакс, Пол (2002b). Коротко о языке VB.NET . В двух словах (2-е изд.). О'Рейли Медиа, Инк. ISBN 978-0-596-00308-1 .
- Стил, Патрик (31 мая 2005 г.). «Ничего? Определенно!» . Блог Патрика Стила по .NET .
- Стил, Патрик (3 июня 2005 г.). «Избегание IsNothing()» . Блог Патрика Стила по .NET .
- Уэйкфилд, Кэмерон; Сондер, Хенк-Эверт (2001). Ли, Вэй Мэн (ред.). Руководство веб-разработчика VB.net . синтез. ISBN 978-1-928994-48-0 .
- «ISNUMERIC (Transact-SQL)» . MSDN : SQL Server 2008: Справочник по Transact-SQL . Майкрософт . 23 мая 2023 г.
Дальнейшее чтение
[ редактировать ]Интернет-документация Microsoft
[ редактировать ]- "
IsArray
метод» . MSDN : Библиотека классов .NET Framework:Microsoft.VisualBasic
пространство имен . Майкрософт . - "
IsDate
метод» . MSDN : Библиотека классов .NET Framework:Microsoft.VisualBasic
пространство имен . Майкрософт . - "
IsDBNull
метод» . MSDN : Библиотека классов .NET Framework:Microsoft.VisualBasic
пространство имен . Майкрософт . - "
IsError
метод» . MSDN : Библиотека классов .NET Framework:Microsoft.VisualBasic
пространство имен . Майкрософт . - "
IsNothing
метод» . MSDN : Библиотека классов .NET Framework:Microsoft.VisualBasic
пространство имен . Майкрософт . - "
IsNumeric
метод» . MSDN : Библиотека классов .NET Framework:Microsoft.VisualBasic
пространство имен . Майкрософт . - "
IsReference
метод» . MSDN : Библиотека классов .NET Framework:Microsoft.VisualBasic
пространство имен . Майкрософт .