在VB.NET中Imports语句的实际效果常常是学习该语言的人感到困惑的根源。与VB.NET引用的交互会造成更多的混乱。我们将在这个快速提示中澄清这一点。
下面是整个故事的简要总结。然后我们再看一下细节。
对VB.NET命名空间的引用是一项要求,必须先添加到项目中,然后才能使用命名空间中的对象。(在Visual Studio或VB.NET Express中,会自动为不同的模板添加一组引用。单击解决方案资源管理器中的“显示所有文件”以查看它们是什么。)但Imports语句不是必需的。相反,它只是一种编码便利,允许使用较短的名称。
现在让我们看一个实际的例子。为了说明这个想法,我们将使用System.Data名称空间,它提供ADO.NET数据技术。
默认情况下,使用VB.NET Windows窗体应用程序模板将System.Data作为引用添加到Windows应用程序中。
将新名称空间添加到项目中的References集合会使该名称空间中的对象也可用于项目。最明显的效果是VisualStudio“Intellisense”将帮助您在弹出菜单框中查找对象。
如果您试图在程序中使用一个没有引用的对象,代码行将生成一个错误。
另一方面,Imports语句从来都不是必需的。它所做的唯一一件事就是允许解析名称而不必完全限定。换句话说(加上强调以显示差异)。
Imports System.Data Public Class Form1 Inherits System.Windows.Forms.Form Private Sub Form1_Load( ... Dim Test As OleDb.OleDbCommand End Sub End Class和
Imports System.Data.OleDb Public Class Form1 Inherits System.Windows.Forms.Form Private Sub Form1_Load( ... Dim Test As OleDbCommand End Sub End Class两者都是等价的。但是
Imports System.Data Public Class Form1 Inherits System.Windows.Forms.Form Private Sub Form1_Load( ... Dim Test As OleDbCommand End Sub End Class由于导入命名空间限定系统,导致语法错误(“未定义类型“OleDbCommand”)。数据未提供足够的信息来查找对象OleDbCommand。
尽管程序源代码中名称的限定可以在“明显的”层次结构中的任何级别进行协调,但您仍然必须选择正确的名称空间进行引用。例如,.NET提供了一个System.Web命名空间和以System.Web开头的其他命名空间的完整列表。。。
引用有两个完全不同的DLL文件。您必须选择正确的方法,因为WebService不是其中一种方法。
...务并向调用代码返回值的过程,而过程是程序中的可执行语句块。 visualbasic(VB.NET)是在微软开发的.NET框架上实现的一种编程语言。它是一种现代的通用编程语言。它有助于开发高效的程序,而且更容易学习语言。此外,VB还提...
...操作符。查询表达式以关键字“from”开头。程序员必须导入名称空间System.Query以访问程序中的标准LINQ查询运算符。此外,如果程序员对基于.NET的语言、SQL和其他相关API有一定的了解,他就可以编写有效的LINQ查询。 什么是sql语...
...象的语言 真正的面向对象语言 参数传递 大多数是通过引用传递的 默认值是按值传递 对象支持默认属性 是的 不 已完成替换 CollectionQBColor、RGBDateAdd、DateDiff、DatePart、DateSerial、DateValue、TimeSerial、TimeValue System.CollectionSystem.Dr...
...大,因为它对Integer等“值”类型根本不起作用(字符串是引用类型。有关值类型和引用类型的更多信息,请参阅本系列的第一篇文章)。。。 Integer=TryCast(对象,整数) ... 甚至不会编译。 当您不确定正在使用的对象类型时...
...对象称为子对象。例如,在VB.NET中,您经常会看到这样的语句: 父对象是System.Windows.Forms.Form,它有一组由Microsoft预先编程的方法和属性。Form1是子对象,它可以利用父对象的所有编程。引入VB.NET时添加的关键OOP(面向对象编程...
... ClassEnd模块 然后,可以将单个值保存到如下文件中: 导入System.Runtime.Serialization.Formatters.BinaryImports System.IOPublic Class Form1 Private Sub mySerialize\u Click(\uVal sender作为System.Object,\uVal e作为System.EventArgs)处理mySerialize。单击Dim ParmDat...
在VisualBasic学生学习了所有循环、条件语句和子例程之后,他们经常问的下一个问题是,“如何添加位图、.wav文件、自定义光标或其他一些特殊效果?”答案之一是资源文件。当您将资源文件添加到项目中时,它将被集成,以...
...并非如此。(将对象设置为Nothing通常称为解除对对象的引用。)实际上,这只是意味着变量不再与对象关联。稍后,GC会注意到该对象可用于销毁。 顺便说一下,对于托管对象,这些都不是真正必要的。虽然像按钮这样的对象...
...件可能是一个非常高级的项目。但是,您可以构建一个VB.NET类,该类具有工具箱组件的许多优点,而且所需的工作量要小得多。这就是为什么! 要了解创建完整的自定义组件需要做什么,请尝试以下实验: -&燃气轮机;...
在VisualBasic学生学习了所有关于循环、条件语句和子例程等的知识之后,他们经常问的下一个问题是,“如何添加位图、wav文件、自定义光标或其他特殊效果?”答案之一是资源文件。当您使用VisualStudio资源文件添加文件时,它...