Re: [問題] 請問c#如何宣告結構

看板C_Sharp作者 (wind)時間17年前 (2007/08/23 00:25), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串4/4 (看更多)
請問喔 我本來是想要有5000個Node形態的struct 所以我多加Node kkk=new Node[5000]; 為什麼不能阿 如下 struct Node { static char[] st_name = new char[30];//靜態 char[] name; public void Init_name() { name=new char[30]; } } //Form1類中的方法 private void Form1_Load(object sender, EventArgs e) { Node t = new Node(); t.Init_name(); //實例化name Node kkk=new Node[5000]; //多加的 請問這樣編譯為何還不過 //它寫無法將型別Node[]隱含轉為Node } 謝謝 ※ 引述《Inshion (Inshion)》之銘言: : 首先說明一下「必須寫在Form1類的下面」的問題… : 意思就是說,本例中的namespace里的第一個類必須是窗體類Form1 : 如果前面寫了別的類,雖然編譯運行都是正常的,但會打不開設計器(.Net2.0+VS2005) : 但實際上struct卻是可以寫在窗體類的前面的……但是不推荐這樣寫 : 關于char[]的實例化 : 和類一樣的做法,一是可以做成靜態的,就可以直接實例化; : 二是可以在結構體里定義一個方法,用結構體的實例來調用 : struct Node : { : static char[] st_name = new char[30];//靜態 : char[] name; : public void Init_name() : { : name=new char[30]; : } : } : //Form1類中的方法 : private void Form1_Load(object sender, EventArgs e) : { : Node t = new Node(); : t.Init_name(); //實例化name : } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.100.109.211

08/23 00:27, , 1F
語法不對唄,應該是Node[] kkk = new Node[5000];吧
08/23 00:27, 1F

08/23 03:56, , 2F
物件和物件陣列是不同的喔
08/23 03:56, 2F

08/23 10:54, , 3F
嗯嗯 謝謝^^
08/23 10:54, 3F
文章代碼(AID): #16p6E9b- (C_Sharp)
文章代碼(AID): #16p6E9b- (C_Sharp)