
正文
vb.net结构 vbnet structure
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
VB.NET 里 结构(Structure)和类(Class)有什么区别?如题 谢谢了
Structure是值类型vb.net结构,classe是引用类型 Structure用栈来分配; classe用堆来分配 structure的成员默认情况下是公共的vb.net结构,而Class的成员变量和常量默认情况下是私有的而其它成员默认情况下是公共的.这与VB6是相兼容的。 structure必须至少有一个非共享的成员变量或事件成员,class可以完全是空的. Structure的成员不能声明成Protected; class成员可以. 一个structure过程只能在它是一个Shared Sub时才能handle events而且只能通过AddHandler语句;而任何class过程都可以handle events,既可以用Handles关键字或 AddHandler语句。 Structure variable declarations cannot specify initializers, the New keyword, or initial sizes for arrays; class variable declarations can. Structure继承自ValueType类,不能从其它任何类型继承; classes可以从任何不是ValueType的类继承 Structure不能继承而Class可以 Structure从来不析构terminated因此common language runtime (CLR)从来不调用它的Finalize方法,classe由垃圾回收器进行析构, 当没有任何对该类的引用时调用它的Finalize方法 structure 不需要一个构造函数,而Class需要 Structure只能有带参数的非共享的构造函数; classes 可以有带或不带参数的构造函数. 每个Structure都有一个默认的不带参数的构造函数以对其成员进行初始化,vb.net结构你可以重新定义该函数
相关问答
Q1: vb.net 如何在结构体内设定定长数组
结构体无法初始化值,你可以用类实现,或者写一个构造函数,把值传进去。
Public Structure wheelmodel
Public ID As Short
Public swapway() As Short
Public start As Short
Public Sub New(ByVal Size As UShort) 'Size就是传入的数组的大小
swapway = New Short(Size) {}
End Sub
End Structure
调用的时候:
Dim x As wheelmodel = New wheelmodel(10)
Q2: vb.net 如何定义含数组的结构数组?
Dim wheel2(10) As wheelmodel2
不要用 New
结构体是值类型的,当你定义完数组之后,里面的元素(结构体的实例)就已经使用默认的构造函数初始化了
Q3: 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 = {
Q4: VB.net中怎么定义初始化一个结构体数组
struct T_ChildStruct
{
int nChildData;
string strChildData;
T_ChildStruct()
{
nChildData = 0;
strChildData = ""; // string可以不用写初始化vb.net结构,本身构造中就有
}
};
struct T_FatherStruct
{
int nFatherData;
string strFatherData;
T_ChildStruct arrChild[10];
T_FatherStruct()
{
nFatherData = 0;
strFatherData = "";
}
};
vb.net结构的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vbnet structure、vb.net结构的信息别忘了在本站进行查找喔。








