
正文
vb.net声明类 vb声明语句的规则
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
vb.net 定义变量 ,类型,对象问题?
在.NET中vb.net声明类,对象和结构还是有些不同的vb.net声明类,定义方式也是其中之一。
像整型、字符串和一些数值类型都属于结构。结构只需要这样定义就可以vb.net声明类了:
Dim str As String
系统自动分配内存,然后就可以对它进行访问vb.net声明类了。
如果像这样声明普通类:
Dim cla As Class
此时直接访问cla类成员会引发一个null异常。因为vb.net声明类你仅仅声明了cla的类型(cla是Class类型的),而内存中没有一个真正的对象(类的实例)。如果你需要一个实例,就需要用New关键字,例如:
Dim cla As New Class("some words")
这时系统会建立一个Class对象,并将cla指向这个对象。这样就完成了一次实例化。这时就可以直接访问cla的成员了。
在实例化时,系统会调用对象的New函数,即构造函数。后面括号里的内容并不是对象的属性,而是要传递给这个构造函数的参数。至于对象的构造函数是否需要参数、需要多少参数以、参数的类型及重载情况等,取决于要实例化的类型。
上面的Class只是例子,代换成实际的类即可。
相关问答
Q1: vb 怎样声明类 怎样调用声明的类
声明类
新建一个工程,添加一个类模块,
在类模块中输入代码:
'定义类 myclass
option explicit
public sub msg()
msgbox "hello! "
end sub ********************简单起见,我只定义vb.net声明类了一个方法
在form窗体中输入代码:
option explicit
dim classmy as myclass
Public Sub Form_Load()
Set classmy = New myclass ****生成myclass的一个对象
classmy.msg **************调用类的方法
End Sub
调用声明类:假如vb.net声明类你的类的名字叫Editdata.vb。
将Editdata.vb添加入你新的工程,然后在看下Editdata的名字空间。要保证调用的地方能访问到这个类。
另外你这个类的Insert 方法是静态的吗?静态的你可以类名称后直接调用方法,如果不是静态你需要实例化一个EditData 类了
Dim mEditData as EditData =new EditData()
mEditData.Insert(Conn, SQLString)
Q2: 怎么在vb.net类外部声明一个变量,在其中一个过程中再次声明它可用
这个简单,你新建一个类 比如新建一个 test.vb 这个类文件
在test.vb 这个类里面定义变量
Public parameter As IEnumParameter = Nothing
这样的话在其他过程里面可以直接引用就行了
Dim test As New test
'使用的话直接这样使用
Dim a As IEnumParameter=test.parameter
Q3: VB.NET中如何强制声明变量,好处是什么?
显示申明的好处在于,
主观上,你阅读代码不会有障碍,忘记自己曾经定义的这个变量是什么类型
另外,你没有声明类型,会造成额外的开销,如果你是想存一个int类型,可是你没声明,那么它就成了引用类型,造成了额外的空间开销
Q4: VB.NET 对象声明 定义(实例化)不明白的问题
第一个相当于 aa 就是Object的方法返回的那个实例。
第二个是实例化一个Object2类。
有些类的一些方法会返回一个结构或者什么类。那么可以用第一种方法,将 aa 做为对这个返回实例的引用。
第二种方法,是通过调用类或结构的初始化函数Sub New来实例化的。
哎,表达能力有限,也不晓得你明白了没。
Q5: vb.net中Default关键字是什么意思
VB.NET中vb.net声明类的Default关键字是用来声明类的默认属性的 默认属性可以直接使用“对象名(参数)”的形式来调用 而不用写出属性名
举个例子vb.net声明类:
'先声明1个类
Public Class myclass
Dim a1 As Integer=1
Dim a2 As Integer=2
Default Public Property geta(ByVal x As Integer) As Integer
Get
If x=1 Then Return a1 Else Return a2
Set(ByVal value As Integer)
If x=1 Then a1=value Else a2=value
End Property
End Class
'这里的geta就是默认属性vb.net声明类,后边在主函数里调用它
Public Class test
Shared Sub Main()
Dim obj As myclass=New myclass()
Console.WriteLine("{0} {1}",obj(1),obj(2))
End Sub
End Class
最后输出结果为vb.net声明类:1 2
也就是说可以直接使用obj(1)这样的格式 而不用使用obj.geta(1)这样的格式vb.net声明类了
注意 默认属性必须至少带有1个参数
vb.net声明类的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vb声明语句的规则、vb.net声明类的信息别忘了在本站进行查找喔。







