VB.NET 对象声明 定义(实例化)不明白的问题
VB.NET类使用中有2种方法实例化谁能给我解释这两种区别使用时怎么区分呢如果想使用某个类怎么确定应该使用那种方法是对的?DimaaASObject1=Object1.方...
VB.NET 类使用中 有2种方法实例化 谁能给我解释这两种区别 使用时怎么区分呢
如果想使用某个类 怎么确定应该使用那种方法是对的?
Dim aa AS Object1 = Object1.方法(参数)
Dim bb AS New Object2(参数1,参数2) 展开
如果想使用某个类 怎么确定应该使用那种方法是对的?
Dim aa AS Object1 = Object1.方法(参数)
Dim bb AS New Object2(参数1,参数2) 展开
1个回答
展开全部
第一个相当于 aa 就是Object的方法返回的那个实例。
第二个是实例化一个Object2类。
有些类的一些方法会返回一个结构或者什么类。那么可以用第一种方法,将 aa 做为对这个返回实例的引用。
第二种方法,是通过调用类或结构的初始化函数Sub New来实例化的。
哎,表达能力有限,也不晓得你明白了没。
第二个是实例化一个Object2类。
有些类的一些方法会返回一个结构或者什么类。那么可以用第一种方法,将 aa 做为对这个返回实例的引用。
第二种方法,是通过调用类或结构的初始化函数Sub New来实例化的。
哎,表达能力有限,也不晓得你明白了没。
追问
你说的我差不多理解 只是还有点小问题
第一个aa定义出来的 是不是Object1的实例
如果是的话 和第二个就没有什么区别了
我就不理解 为什么不用相同关键字呢
一个用“new” 一个用“=” 好麻烦呀 很难理解
用这样不就好了吗 怎么那么多花样
Dim aa AS New Object1.方法(参数)
Dim bb AS New Object2(参数1,参数2)
追答
所有的类都会有一个初始化函数 Sub New。
比如有这么段代码
Module Test
Dim a as TestClass ' a在整个模块都能被访问到,下面 Sub Test1 里的 b 就不能。虽然这里没有实例化 a ,但在用之前你肯定会实例化它的。
Sub Main
'这里实例化 a 来使用。
a = new TestClass(参数1,参数2)
'或者有个类的SharedSub方法返回的就是一个实例化的TestClass,那么也可以
'a= SomeClass.SharedSub
'...
End Sub
Sub Test1
'这里可以直接调用 a 了(如果没有实例化,肯定会报错)。
a.某个方法
’假如现在在这个过程里需要另外实例化一个TestClass类来和做比较
dim b as New TestClass(参数11,参数22)
b.某个方法
‘...
’这下应该明白区别了吧
End Sub
End Module
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询