2012-04-25 210 views
0

我想用一些值填充结构中包含的数组,但不管我尝试什么,都会收到错误。在结构c中填充数组#

我的结构看起来像在初始化我创建一个新的boardState并试图用这样的

boardState _state_ = new boardState(); 
     _state_.structid = 1; 
     _state_.state[9] = {'o','-','-','-','o','-','-','-','-','o'}; 

structid一些值来填充它这个

public struct boardState 
    { 
     public int structid; 
     public char[] state; 
    } 

波纹管似乎做工精细,但是我在{'o',' - '等等}告诉我一个错误。预期'。我已经通过上面的代码,并确保没有;缺少(由没有这条线运行的程序确认),所以我猜你不能以这种方式分配给数组。我怎样才能分配给状态数组?

编辑: - 添加了我错过的逗号,但仍然得到相同的错误。

+2

注意:请考虑使用类而不是结构。或者请确认您知道在C#中使用struct有什么后果(0123)吗? – 2012-04-25 23:54:44

+1

我只需要说我同意阿列克谢,并补充说,你有一个可变的结构,这通常被认为是一个坏主意。而且,通过在结构中有一个对象,结构的大部分用途都消失了。 – Guffa 2012-04-26 00:09:25

回答

2

你不需要[9]。它试图将一个数组分配给一个字符。相反,只是用这个:

_state_.state = new char [] {'o','-','-','-','o','-','-','-','-','o'}; 
+0

非常感谢,现在工作正常。 – 2012-04-25 23:56:50

+0

@E_S我很高兴我能帮上忙。考虑将答案标记为已接受。 – 2012-04-26 00:01:08

2

您错过了逗号并且语法关闭。

来源:

_state_.state[9] = {'o','-','-','-','o','-','-','-','-''o'}; 

要:

_state_.state = new char [] {'o','-','-','-','o','-','-','-','-','o'}; 
+0

谢谢你指出。我已经添加了逗号,但我仍然收到相同的错误 – 2012-04-25 23:53:53

+0

请考虑阅读完整答案,而不仅仅是前两行...... – 2012-04-26 00:10:39