Действителният ефект от декларацията за импортиране във VB.NET често предизвиква объркване за хората, които учат езика. А взаимодействието с VB.NET References прави още повече объркване. Ще разясним това в този бърз съвет.
Ето кратко резюме на цялата история. След това ще прегледаме подробностите.
Препратка към VB.NET пространство от имена е изискване и трябва да се добави към проект, преди обектите в пространството от имена да могат да бъдат използвани. (Набор от референции се добавя автоматично за различни шаблони в Visual Studio или VB.NET Express. Кликнете върху „Покажи всички файлове“ в Explorer Explorer, за да видите какви са те.) Но декларацията за импортиране не е изискване. Вместо това, това е просто удобство за кодиране, което позволява да се използват по-кратки имена.
Сега нека разгледаме действителен пример. За да илюстрираме тази идея, ще използваме Системата. Пространство от имена на данни - което осигурява ADO.NET технология за данни.
Система. Данните се добавят към приложенията на Windows като Справочник по подразбиране с помощта на шаблона за приложение VB.NET Windows Forms.
Добавяне на пространство от имена в колекцията от препоръки
Добавянето на ново пространство на имена в колекцията от препратки в проекта прави обектите в това пространство от имена достъпни и за проекта. Най-видимият ефект от това е, че Visual Studio "Intellisense" ще ви помогне да намерите обектите в полетата на изскачащото меню.
Ако се опитате да използвате обект във вашата програма без Справка, редът на кода генерира грешка.
От друга страна, декларацията за внос никога не се изисква. Единственото, което прави, е да разреши името да бъде разрешено, без да е напълно квалифицирано. С други думи (акцент се добавя, за да се покажат разликите).
Вносът Система. Данни
Форма за публичен клас1
Наследствена система. Windows. Форми. форма
Private Sub Form1_Load (...
Dim тест като OLEDB. OleDbCommand
Край Sub
Краен клас
и
Вносът Система. Данни. OLEDB
Форма за публичен клас1
Наследствена система. Windows. Форми. форма
Private Sub Form1_Load (...
Dim тест като OleDbCommand
Край Sub
Краен клас
и двете са равностойни. Но ...
Вносът Система. Данни
Форма за публичен клас1
Наследствена система. Windows. Форми. форма
Private Sub Form1_Load (...
Dim тест като OleDbCommand
Край Sub
Краен клас
води до синтактична грешка ("Тип" OleDbCommand "не е дефиниран") поради Импортира пространството от имена квалификационна система. Данните не предоставят достатъчно информация за намиране на обекта OleDbCommand.
Въпреки че квалификацията на имената във вашия програмен изходен код може да бъде координиран на всяко ниво в „привидната“ йерархия, все пак трябва да изберете правилното пространство на имена, за да се позовавате. Например. .NET предоставя система. Уеб пространство на имена и цял списък с други, започващи със System. Уеб ...
Забележка
Има два напълно различни DLL файла за препратките. НЕ трябва да изберете правилния, защото WebService не е метод в един от тях.