我有一个结构体(.NET 3.5):
struct ColumnHeadings
{
public string Name ;
public int Width ;
} ;
当我试图将一个值列表分配给该结构体时,会出现“无法隐式转换类型为字符串/整数到…”的错误:
private void doSomething()
{
ColumnHeadings[,] ch = new ColumnHeadings[,]{{"column1",100},
{"column2",100},{"column3",100}};
}
结构体的值可以像多维数组一样进行赋值吗?还是必须使用赋值语句来赋值呢?
ch.Name = "column 1";
更新:
感谢Marc的优秀反馈,正确的解决方案如下:
结构体:
struct ColumnHeadings
{
private readonly string name;
private readonly int width;
public string Name { get { return name; } }
public int Width { get { return width; } }
public ColumnHeadings(string name, int width)
{
this.name = name;
this.width = width;
}
}
然后在这个方法中:
var ch = new[]{new ColumnHeadings("column1",100),
new ColumnHeadings("column2",100),
new ColumnHeadings("column3",100)};
以下是为什么可变结构体不是一个好主意的链接。
ColumnHeadings
是二维的? - C. Ross