作者liptonbin (wind)
看板C_Sharp
标题Re: [问题] 请问c#如何宣告结构
时间Thu Aug 23 00:25:42 2007
请问喔 我本来是想要有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
1F:推 Inshion:语法不对呗,应该是Node[] kkk = new Node[5000];吧 08/23 00:27
2F:推 MRjk:物件和物件阵列是不同的喔 08/23 03:56
3F:→ liptonbin:嗯嗯 谢谢^^ 08/23 10:54