189 8069 5689

vb.net结构数组 vb 数组函数

vb.net 如何在结构体内设定定长数组

结构体无法初始化值,你可以用类实现,或者写一个构造函数,把值传进去。

创新互联公司主营昭阳网站建设的网络公司,主营网站建设方案,app开发定制,昭阳h5小程序开发搭建,昭阳网站营销推广欢迎昭阳等地区企业咨询

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)

在VB.net中如何取变量、结构、数组、函数的地址?

当然可以的,需要System.Runtime.InteropServices 命名空间中的 Marshal 类

Imports System.Runtime.InteropServices '这里一定要有 

Public Class Form1

Public Structure m_Point

Dim x As Integer

Dim y As Integer

End Structure

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim i As Integer = 50

Dim ai() As Integer = {1, 2, 3, 4, 5}

Dim pi As IntPtr = GCHandle.Alloc(i, GCHandleType.Pinned).AddrOfPinnedObject() '取得整形变量的指针 

Dim pai As IntPtr = GCHandle.Alloc(ai, GCHandleType.Pinned).AddrOfPinnedObject() '取得整形数组首地址指针

MsgBox(Marshal.ReadInt32(pi, 0)) '读回整形变量指针指向的值

MsgBox(Marshal.ReadInt32(pai, 0 * 4)) '读回数组的第一个元素

MsgBox(Marshal.ReadInt32(pai, 1 * 4)) '读回数组的第二个元素

MsgBox(Marshal.ReadInt32(pai, 2 * 4)) '读回数组的第三个元素

'-----下面是结构--------------------------

Dim m_p As New m_Point

m_p.x = 100

m_p.y = 50

Dim pm_p As IntPtr = GCHandle.Alloc(m_p, GCHandleType.Pinned).AddrOfPinnedObject() '取得结构首地址指针 

MsgBox(Marshal.ReadInt32(pm_p, 0 * 4)) '读回结构的第一个值

MsgBox(Marshal.ReadInt32(pm_p, 1 * 4)) '读回结构的第二个值

End Sub

End Class

vb.net中如何对结构数组进行new初始化

首先你是怎么重写结构的Sub New的呢?不会有这个错误吗:“结构无法声明没有参数的非共享“Sub New”?

结构是值类型,和类不一样,不一定要有构造函数。直接

Dim B(2) As A

如果有一个含参数的Sub New(i As Integer)

Dim B() As A={New A(1), New A(2)}

有时要初始化很多个的时候可以用循环

Dim c As Integer = 50

Dim B(c) As A

For i = 0 To c

B(i) = New A(i)

Next

不过这样是对变量重新赋值,这种方法用在类上比较好。

看看这个有帮助哦:

vb.net 如何定义含数组的结构数组?

Dim wheel2(10) As wheelmodel2

不要用 New

结构体是值类型的,当你定义完数组之后,里面的元素(结构体的实例)就已经使用默认的构造函数初始化了

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结构数组 vb 数组函数
转载来于:http://cdxtjz.com/article/dosdice.html

其他资讯