vb.net类型约束 vbnet class( 二 )


想让单个变量持有几个相关信息时结构很有用 。例如,您可能想将一个雇员的姓名、电话分机号和薪金放在一起 。可以对这些信息使用几个变量,或者可以定义一个结构并将它用于单个雇员变量 。当有许多雇员并且因此有该变量的许多实例时,结构的优点变得非常明显 。
使用 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 自定义一个文件类型,比如 "XX.abc" 里面存储文本 , 且只能自己可以打开,如何实现?Function ByteToBin(m As Byte) As String' 将字节型数据转换成八位二进制字符串
Dim c$
c$ = ""
Do While m0
r = m Mod 2
m = m \ 2
c$ = rc$
Loop
c$ = Right("00000000"c$, 8)
ByteToBin = c$
End Function
Function Reverse(m As String) As String' 将八位二进制字符串颠倒顺序
Dim i%, x$
x = ""
For i = 1 To 8
x = Mid(m, i, 1)x
Next i
Reverse = x
End Function
Function BinToByte(m As String) As Byte' 将八位二进制串转换成十进制
Dim x As String * 1, y%, z%
z = 0
For i = 1 To 8
x = Mid(m, i, 1)
y = x * 2 ^ (8 - i)
z = z + y
Next i
BinToByte = z
End Function
Private Sub Command1_Click()
Dim x As Byte, i%, fname$
fname = InputBox("请输入要加密的文件名!注意加上路径名:")
If Dir(fname) = "" Then
MsgBox "文件不存在!"
Exit Sub
End If
Open fname For Binary As #1' 以二进制访问模式打开待加密文件
For i = 1 To LOF(1)' LOF函数是求文件长度的内部函数
Get #1, i, x' 取出第i个字节
x = BinToByte(Reverse(ByteToBin(x))) ' 这里调用了三个自定义函数
Put #1, i, x' 将加密后的这个字节写回到文件原位置

推荐阅读