vb.net+构造体用法 vb structure 结构

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

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

目前创新互联建站已为上千的企业提供了网站建设、域名、虚拟主机绵阳服务器托管、企业网站设计、和县网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

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

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

使用 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怎么用构造函数传参进行窗体间跳转?

Public Class Form2

Dim test As String

Public Sub New(ByVal _test As String)

test = _test

End Sub

End Class

Form1 中 New Form2("abc") 即可传参给 Form2 中的 test。

但在 VB.NET 中,没必要这么麻烦,只需要声明为 Public,即可直接方法,如:

Public Class Form2

Public test As String

End Class

Form1 中直接 Form2.test = "abc" 即可。

VB.net的结构体怎么一次性赋值,结构数组怎么一次性赋值?

把“...”替换成你要初始化的数据。一个简单的例子: Dim a(3) As Integer = { 0, 1, 2 }**修改**既然有界数组不能初始化,就还缺(省)界数组试试嘛: Dim a() As Integer = { 0, 1, 2 } 类型不匹配的错误估计是你的结构体缺少构造函数造成的。在你的quality_i结构体定义里面加一个构造函数,如下所示 Public Structure quality_i Public nub As Integer Public nae As String Public Sub New(ub As Integer, ae As String)nub = ubnae = aeEnd SubEnd Structure 然后以如下方式初始化: Dim k() As quality_i = {


新闻标题:vb.net+构造体用法 vb structure 结构
转载注明:http://ybzwz.com/article/doggioo.html