189 8069 5689

vb.net自定义类实例的简单介绍

我想知道在vb.net里怎么实现自定义数据类型,就是实现C++中TypeDef一样的功能

“结构”是 Visual Basic 早期版本支持的用户定义类型 (UDT) 的一般化。除字段外,结构还可以公开属性、方法和事件。结构可以实现一个或多个接口,而您可以分别为每个字段声明访问级别。

创新互联公司专业为企业提供琼中黎族网站建设、琼中黎族做网站、琼中黎族网站设计、琼中黎族网站制作等企业网站建设、网页设计与制作、琼中黎族企业网站模板建站服务,10年琼中黎族做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

可以合并不同类型的数据项来创建结构。结构将一个或多个“元素”彼此关联并且将它们与结构本身关联。声明了结构后,它将成为“复合数据类型”,而您可以声明该类型的变量。

想让单个变量持有几个相关信息时结构很有用。例如,您可能想将一个雇员的姓名、电话分机号和薪金放在一起。可以对这些信息使用几个变量,或者可以定义一个结构并将它用于单个雇员变量。当有许多雇员并且因此有该变量的许多实例时,结构的优点变得非常明显。

使用 Structure 语句语句作为结构声明的开始,并使用 EndStructure 语句作为结构声明的结束。在这两条语句之间必须至少声明一个“元素”。元素可以是任何数据类型,但是至少一个必须是非共享变量,或是非共享非自定义事件。

不能在结构声明中初始化任何结构元素。如果将一个变量声明为结构类型,则可以通过变量访问元素来给它们赋值。

声明一个结构:

可以使用 Public、Protected、Friend或Private关键字指定结构的访问级别,或者使用默认值 Public。如:

Private Structure employee

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 如何在一个项目中创建类,并且使用他?

在任意form类或模块中都可以创建类,跟建立函数和过程一样。

示例:

public class form1

‘创建一个属于form的子类,名称为【类名】。

public class 类名

’定义类成员text

public text as string

end class

‘定义一个【类名】类的公共变量。

dim 类名1 as 类名

’定义一个过程,使用【类名】类的text成员

public sub 过程

‘实例化【类名1】

类名1=new 类名

类名1.text=“赋值”

’定义一个【新类】类的私用变量,并实例化。

dim 新类1 as new 新类

新类1.name=“一个字符串”

新类1.age=12

end sub

end class

‘’‘创建一个与form同级的类,名称为【新类】

public class 新类

public sub new()

end sub

public name as string

public age as integer

end class

在模块中使用:

public class module1

dim a as new form1.类名

end module

VB.net中类的实例化

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.类的成员分 实例成员 和 静态成员

实例成员 必须在实例对象上调用

静态成员 可以直接调用,不需要实例对象。


网站名称:vb.net自定义类实例的简单介绍
链接地址:http://cdxtjz.cn/article/hcjhgi.html

其他资讯