結構體無法初始化值,你可以用類實現(xiàn),或者寫一個構造函數(shù),把值傳進去。
創(chuàng)新互聯(lián)公司主營昭陽網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,app開發(fā)定制,昭陽h5小程序開發(fā)搭建,昭陽網(wǎng)站營銷推廣歡迎昭陽等地區(qū)企業(yè)咨詢
Public Structure wheelmodel
Public ID As Short
Public swapway() As Short
Public start As Short
Public Sub New(ByVal Size As UShort) 'Size就是傳入的數(shù)組的大小
swapway = New Short(Size) {}
End Sub
End Structure
調(diào)用的時候:
Dim x As wheelmodel = New wheelmodel(10)
當然可以的,需要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()?'取得整形數(shù)組首地址指針
MsgBox(Marshal.ReadInt32(pi,?0))?'讀回整形變量指針指向的值
MsgBox(Marshal.ReadInt32(pai,?0?*?4))?'讀回數(shù)組的第一個元素
MsgBox(Marshal.ReadInt32(pai,?1?*?4))?'讀回數(shù)組的第二個元素
MsgBox(Marshal.ReadInt32(pai,?2?*?4))?'讀回數(shù)組的第三個元素
'-----下面是結構--------------------------
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
首先你是怎么重寫結構的Sub New的呢?不會有這個錯誤嗎:“結構無法聲明沒有參數(shù)的非共享“Sub New”?
結構是值類型,和類不一樣,不一定要有構造函數(shù)。直接
Dim?B(2)?As?A
如果有一個含參數(shù)的Sub New(i As Integer)
Dim?B()?As?A={New?A(1),?New?A(2)}
有時要初始化很多個的時候可以用循環(huán)
Dim?c?As?Integer?=?50
Dim?B(c)?As?A
For?i?=?0?To?c
B(i)?=?New?A(i)
Next
不過這樣是對變量重新賦值,這種方法用在類上比較好。
看看這個有幫助哦:
Dim wheel2(10) As wheelmodel2
不要用 New
結構體是值類型的,當你定義完數(shù)組之后,里面的元素(結構體的實例)就已經(jīng)使用默認的構造函數(shù)初始化了
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結構數(shù)組 vb 數(shù)組函數(shù)
文章網(wǎng)址:http://jinyejixie.com/article24/dosdice.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗、手機網(wǎng)站建設、搜索引擎優(yōu)化、服務器托管、網(wǎng)站策劃、自適應網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)