vb.net自定义结构体 vb定义结构体类型

VB 自定义结构数组

Option

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的黑山网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

Explicit

'定义

结构体

,注意,此处如果用到字符串变量,要设置

定长

Private

Type

typUser

uid

As

Long

uName

As

String

*

10

'定长10个字符

uPWD

As

String

*

10

End

Type

Dim

user(10)

As

typUser

'读取

Dim

userGet(10)

As

typUser

Private

Sub

Form_Load()

'随便填充数据

Dim

i

As

Integer

For

i

=

To

10

With

user(i)

.uid

=

i

.uName

=

Rnd

*

99999

.uPWD

=

Rnd

*

88888

End

With

Next

'保存结构体数组到文件

Open

App.Path

"\save.dat"

For

Random

As

#1

Len

=

Len(user(0))

'Random方式打开文件,这里的len是每条记录的长度

For

i

=

To

10

Put

#1,

,

user(i)

Next

Close

#1

'从文件中读取结构体

Open

App.Path

"\save.dat"

For

Random

As

#1

Len

=

Len(user(0))

For

i

=

To

10

Get

#1,

i

+

1,

userGet(i)

Next

Close

#1

End

Sub

VB.net中怎么定义初始化一个结构体数组

struct T_ChildStruct

{

int nChildData;

string strChildData;

T_ChildStruct()

{

nChildData = 0;

strChildData = ""; // string可以不用写初始化,本身构造中就有

}

};

struct T_FatherStruct

{

int nFatherData;

string strFatherData;

T_ChildStruct arrChild[10];

T_FatherStruct()

{

nFatherData = 0;

strFatherData = "";

}

};

我想知道在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;

}

关于在VB6.0中定义结构体

VB6.0中定义结构体

窗体中可以定义,只能定义成 Private ,在本窗体中使用

Private Type MyType

a As Integer

b As Integer

End Type

模块中

可以定义成 Private ,在本模块中使用

Private Type MyType

a As Integer

b As Integer

End Type

可以定义成 Public ,在任何地方都可以使用

Public Type MyType

a As Integer

b As Integer

End Type

结构体定义以后就成为一种数据类型,和 Long等数据类型使用方法类似

Private Sub Form_Load()

Dim x As MyType

Dim y As MyType

x.a = 1

x.b = 2

y = x 'VB 允许 结构体 像这样整体赋值

ReDim MyArray(1 To 10) As MyType

End Sub


网页标题:vb.net自定义结构体 vb定义结构体类型
分享地址:http://azwzsj.com/article/dojposc.html