Фактический эффект оператора Imports в VB.NET часто является источником путаницы для людей, изучающих язык. А взаимодействие с VB.NET References создает еще большую путаницу. Мы собираемся прояснить это в этом кратком совете.
Вот краткое изложение всей истории. Тогда мы рассмотрим детали.
Ссылка на пространство имен VB.NET является обязательным требованием и должна быть добавлена в проект перед использованием объектов в пространстве имен. (Набор ссылок автоматически добавляется для разные шаблоны в Visual Studio или VB.NET Express. Нажмите «Показать все файлы» в обозревателе решений, чтобы увидеть, какие они есть.) Но утверждение Imports не является обязательным. Вместо этого это просто удобство кодирования, которое позволяет использовать более короткие имена.
Теперь давайте посмотрим на реальный пример. Чтобы проиллюстрировать эту идею, мы собираемся использовать Систему. Пространство имен данных - обеспечивает технологию данных ADO.NET.
Система. По умолчанию данные добавляются в приложения Windows в качестве справочника с помощью шаблона приложения Windows Forms VB.NET.
Добавление пространства имен в коллекцию ссылок
Добавление нового пространства имен в коллекцию References в проекте делает объекты в этом пространстве имен доступными и для проекта. Наиболее заметным эффектом этого является то, что Visual Studio «Intellisense» поможет вам найти объекты во всплывающих окнах меню.
Если вы попытаетесь использовать объект в вашей программе без ссылки, строка кода выдаст ошибку.
С другой стороны, утверждение Imports никогда не требуется. Единственное, что он делает - это разрешает имя без полной квалификации. Другими словами (акцент добавлен, чтобы показать различия).
импорт Система. Данные
Открытый класс Form1
Наследует систему. Окна. Формы. форма
Частный Sub Form1_Load (...
Dim Test As OleDb. OleDbCommand
End Sub
Конечный класс
и
импорт Система. Данные. OleDb
Открытый класс Form1
Наследует систему. Окна. Формы. форма
Частный Sub Form1_Load (...
Dim Test As OleDbCommand
End Sub
Конечный класс
оба эквивалентны. Но ...
импорт Система. Данные
Открытый класс Form1
Наследует систему. Окна. Формы. форма
Частный Sub Form1_Load (...
Dim Test As OleDbCommand
End Sub
Конечный класс
приводит к синтаксической ошибке ("Тип 'OleDbCommand' не определен") из-за Импортирует пространство имен Система квалификации. Данные не предоставляют достаточно информации, чтобы найти объект OleDbCommand.
Хотя квалификация имен в вашем исходный код программы можно координировать на любом уровне в «кажущейся» иерархии, вам все равно нужно выбрать правильное пространство имен для ссылки. Например, .NET предоставляет Систему. Веб-пространство имен и целый список других, начиная с System. Веб ...
Заметка
Есть два совершенно разных файла DLL для ссылок. Вы ДОЛЖНЫ выбрать правильный, потому что WebService не является методом ни в одном из них.