vb.net声明类型时的简单介绍

关于VB.NET声明符号常量的问题第三句 。在类级别的变量声明语句中必须显式指定类型名称,省略AS语句只可以用在局部变量声明语句中 。
Private Const c As String = "ok"
vb.net声明对象用new关键字与不用关键字new的区别顾名思义vb.net声明类型时,new就是给变量赋值一个新的对象
dim不加new就是说变量是XX类型的vb.net声明类型时,但它不是一个真正的XX对象 。如果给这个变量赋值的话,实际上就是把某一对象的指针存到变量里 , 它依旧不是一个对象
一个普通的类,里面有一些数据,vb.net声明类型时你要弄一个对象的话,需要初始化所有类中的数据并调用构造函数 。这时候vb.net声明类型时我们就用newvb.net声明类型时了 。如果你不用new,然后直接使用的话,会引发null异常
当然上面的讨论不包括Integer、String、Long这样的数值类型,这些不能用new
vb.net 定义变量,类型,对象问题?在.NET中,对象和结构还是有些不同的,定义方式也是其中之一 。
像整型、字符串和一些数值类型都属于结构 。结构只需要这样定义就可以了:
Dim str As String
系统自动分配内存,然后就可以对它进行访问了 。
如果像这样声明普通类:
Dim cla As Class
此时直接访问cla类成员会引发一个null异常 。因为你仅仅声明了cla的类型(cla是Class类型的),而内存中没有一个真正的对象(类的实例) 。如果你需要一个实例,就需要用New关键字,例如:
Dim cla As New Class("some words")
这时系统会建立一个Class对象,并将cla指向这个对象 。这样就完成了一次实例化 。这时就可以直接访问cla的成员了 。
在实例化时,系统会调用对象的New函数,即构造函数 。后面括号里的内容并不是对象的属性,而是要传递给这个构造函数的参数 。至于对象的构造函数是否需要参数、需要多少参数以、参数的类型及重载情况等,取决于要实例化的类型 。
上面的Class只是例子,代换成实际的类即可 。
我想知道在vb.net里怎么实现自定义数据类型,就是实现C中TypeDef一样的功能“结构”是 Visual Basic 早期版本支持的用户定义类型 (UDT) 的一般化 。除字段外,结构还可以公开属性、方法和事件 。结构可以实现一个或多个接口 , 而您可以分别为每个字段声明访问级别 。
可以合并不同类型的数据项来创建结构 。结构将一个或多个“元素”彼此关联并且将它们与结构本身关联 。声明了结构后,它将成为“复合数据类型”,而您可以声明该类型的变量 。
想让单个变量持有几个相关信息时结构很有用 。例如,您可能想将一个雇员的姓名、电话分机号和薪金放在一起 。可以对这些信息使用几个变量,或者可以定义一个结构并将它用于单个雇员变量 。当有许多雇员并且因此有该变量的许多实例时,结构的优点变得非常明显 。
使用 Structure 语句语句作为结构声明的开始,并使用 EndStructure 语句作为结构声明的结束 。在这两条语句之间必须至少声明一个“元素” 。元素可以是任何数据类型,但是至少一个必须是非共享变量,或是非共享非自定义事件 。
不能在结构声明中初始化任何结构元素 。如果将一个变量声明为结构类型,则可以通过变量访问元素来给它们赋值 。
声明一个结构:
可以使用 Public、Protected、Friend或Private关键字指定结构的访问级别,或者使用默认值 Public 。如:
Private Structure employee
【vb.net声明类型时的简单介绍】End Structure
向结构体添加元素:
结构必须具有至少一个元素 。必须声明结构的每个元素并指定其访问级别 。如果使用不含任何关键字的 Dim 语句 (Visual Basic),则可访问性默认值为 Public 。如:
Private Structure employee
Public givenName As String
Public familyName As String
Public phoneExtension As Long
Private salary As Decimal
Public Sub giveRaise(raise As Double)
salary *= raise
End Sub
Public Event salaryReviewTime()
End Structure
---------------------------
另外,关于你的问题,请参考下面C/C对自定义类型的比较:
1、在C中,不需使用typedef
struct Structure1 {
char c;
int i;
float f;
double d;
};
int main() {
struct Structure1 s1, s2;
s1.c = 'a'; // Select an element using a '.'
s1.i = 1;
s1.f = 3.14;
s1.d = 0.00093;
s2.c = 'a';
s2.i = 1;
s2.f = 3.14;
s2.d = 0.00093;
}
2、在C中,需用typedef定义
typedef struct {
char c;
int i;
float f;
double d;
} Structure2;
int main() {
Structure2 s1, s2;
s1.c = 'a';
s1.i = 1;
s1.f = 3.14;
s1.d = 0.00093;
s2.c = 'a';
s2.i = 1;
s2.f = 3.14;
s2.d = 0.00093;
}
vb.net 什么情况用NEW?实例化引用类型的实例时,需要用到new关键字,其含义为:向指定类型的实例分配内存空间 。只有为一个类型实例分配内存空间后,这个实例才能被使用 。对于值类型,一般不用new 。(在C#中,即便是值类型,也可以使用new 关键字,不知道VB中是不是这个样子.)
vb.net声明类型时的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、vb.net声明类型时的信息别忘了在本站进行查找喔 。

    推荐阅读