重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
实例化引用类型的实例时,需要用到new关键字,其含义为:向指定类型的实例分配内存空间。只有为一个类型实例分配内存空间后,这个实例才能被使用。对于值类型,一般不用new。(在C#中,即便是值类型,也可以使用new 关键字,不知道VB中是不是这个样子.)
创新互联建站专注于延庆企业网站建设,成都响应式网站建设公司,商城网站定制开发。延庆网站建设公司,为延庆等地区提供建站服务。全流程按需网站建设,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
顾名思义,new就是给变量赋值一个新的对象
dim不加new就是说变量是XX类型的,但它不是一个真正的XX对象。如果给这个变量赋值的话,实际上就是把某一对象的指针存到变量里,它依旧不是一个对象
一个普通的类,里面有一些数据,你要弄一个对象的话,需要初始化所有类中的数据并调用构造函数。这时候我们就用new了。如果你不用new,然后直接使用的话,会引发null异常
当然上面的讨论不包括Integer、String、Long这样的数值类型,这些不能用new
Private Sql_Connect As New SqlClient.SqlConnection
直接实例化了
Private Sql_Connect As SqlClient.SqlConnection
没有实例化
需要在后面的代码中
set Sql_Connect = New SqlClient.SqlConnection
以进行实例化
实例化以后对象即有了意义
也会触发Class_Initialize事件
=====================================================
那好吧
dim a as Object
Set a= New SqlClient.SqlConnection
这样写其实也是可以的
但是这样在编程的时候不会显示SqlClient.SqlConnection的属性和方法列表
dim a as SqlClient.SqlConnection
只这样写的话在编程的时候会显示SqlClient.SqlConnection的属性和方法列表,但是在程序运行的时候并不会给这个对象分配内存空间和地址
Set a= New SqlClient.SqlConnection
在这句语句出现后程序才会给这个对象分配内存空间
dim a as new SqlClient.SqlConnection
则把以上两个功能简化处理,一步到位了,这样可能会分配不必要的内存空间给这个对象的
new
就是实例化,比如实例化一个类,你才能访问,,
好比,你是张三,把你的地址告诉了我,我在能找到你家在哪,这个过程就可以称为实例化。
使用New关键字建立一个新的对象和用它属的类来定义是一样的。New关键字可以被用作来建立一个窗体、类模块以及集合的实例。用户在设计的时候建立的每一个窗体都是一个类。New关键字能够用来建立一个类的实例。
可以通过以下步骤来建立一个类的实例:
(1)在窗体上画一个按钮和几个其他的控件。
(2)按钮的Click事件过程加入以下代码:
Dim
x
AS
New
Form1
x.Show
(3)运行程序,并且点击几次按钮,把最前面的窗体移开,因为窗体是一个有可视界面的类,此时可以看见有很多窗体的拷贝,每一个窗体具有相同的控件,并且出现在一个地方。
(4)将列代码加到按钮的click事件过程中:
Dim
f
As
Form1
f=New
Form1
f.text="hello"
f.Show
使用New关键字可以从类模块中定义的类中建立一个新的集合和对象,要知道它们怎样工作,可以参考下面的例子:
(1)建立一个新的工程,并且在一个名为Form1的窗体上画一个按钮控件。
(2)在Project(项目)菜单下,选择"Add
Class"给工程添加一个类
(3)把新的类命名为ShowMe.VB
(4)在该新类中加入如下代码:
PUblic
Class
ShowMe
Sub
ShowFrm()
Dim
frmNew
As
Form1
frmNew=New
Form1
frmNew.Show()
frmNew.WindowState=1
End
Sub
End
Class
(5)在Button1_click事件的过程中加入如下代码:Protected
Sub
Button1_Click(Byval
sender
As
System.Object,_
Byval
AS
System.EventArgs)
Dim
clsNew
As
New
ShowMe()
clsNew.ShowFrm()End
Sub
运行程序,并且点击几次按钮,将看见每创建一个ShowMe类的新的实例时,在桌面上有一个最小化的窗体的图标。
New关键字只能用来建立一个类的对象,不能建立一个基于基本的数据类型的对象,例如Integer。而且,不能建立一个基于一个具体对象的对象。例如,下面的代码根据一个名为SomeClass的类,建立了一个名为Objx的对象,面后又错误地企图根据对象Objx再建立一个其他的对象:
Dim
Objx
As
New
SomeClass()
Dim
Objx
AS
New
Objx()
以上代码是非法的。
呵呵##~
.net里面所有的内容都是类了,包括窗体也是类
Dim frmNew As Form1 即声明frmNew的类型是名为From1的类
frmNew = New Form1 为frmNew赋值,其值为Form1类的一个新的实例。也就是创建了一个窗体,这个窗体是你设计的from1的一个实例
Dim obj = New With {.Sur = "xi", .Name = "jingping", .Age = 45, .FullName = .Sur .Name}
MessageBox.Show(obj.FullName)