Dim a As fomr1
成都创新互联是一家以网站建设、网页设计、品牌设计、软件运维、seo优化排名、小程序App开发等移动开发为一体互联网公司。已累计为混凝土搅拌机等众行业中小客户提供优质的互联网建站和软件开发服务。
只是定义了一个form1类型的变量
Dim a As new fomr1
定义了一个form1类型的变量并将其实例化
Dim a AS new textbox
定义了一个textbox类型的变量并将其实例化
1.不正确
Dim abc As myClass,定义一个可以引用myClass类型对象的变量abc。这个abc变量存在于栈上。
abc=New myClass。New myClass创建myClass实例对象,这个对象存在于托管堆上。然后(同时)让abc引用(指向)这个对象。
abc变量在栈上,而对象在托管堆上。
abc储存的是对象的地址,而不是对象本身。
看下面的代码
Dim a As myClass,b As myClass,c As myClass
a=New myClass
b=a
c=a
整个过程中只创建了一个myClass对象,位于托管堆上。
三个myClass类型的变量a、b、c位于栈上,都指向了这一个myClass对象
2.类的成员分 实例成员 和 静态成员
实例成员 必须在实例对象上调用
静态成员 可以直接调用,不需要实例对象。
无代码无真相!
话说,应该看你这个实例a是作用域的变量,如果仅仅是在函数A中定义的局部变量,那么应该会在函数运行完成的时候自动销毁的。这个应该是变量的生存期问题。
但是,根据你所提供的描述来看,你的这个a类应该定义的至少是一个是模块级别的变量,不然,你在函数B中,用另一个b类来引用a实例是无法实现的。因此,我感觉函数A运行完了之后,你的a实例应该并没有销毁,只有等到整个模块被结束的时候才能销毁。
(PS: VB.net没有用过,以上仅仅是基于vb6.0的类模块使用方法所提出的一点参考建议!)
可以使用 New 关键字对类进行实例化,如
Dim frmDemo As New Form1
可以,但是变量不能用ClassA或B来定义,可以用Object,或ClassA,ClassB的基类,,使用类的成员时,再把变量类型转换成相应的类
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()
以上代码是非法的。
呵呵##~