在C中,我可以在方法中使用以下形式。
void foo() {
struct {
int val;
int color;
string desc;
} ItemMap[] = {
{ 1, 2, "test"},
{ 2, 3, "test"},
}
// process tasks according to ItemMap.
}
如果我想在C#下做同样的事情,如何实现呢?
答案 0 :(得分:8)
您可以在C#中使用匿名类型:
var ItemMap = new[] { new { val = 1, color = 2, desc = "test" },
new { val = 2, color = 3 , desc = "test" } };
string description = ItemMap[0].desc;
然而,这将为您创建一个匿名类的一维数组,而不是结构 - 也是只读的。如果您特别需要一个可变的结构/值类型,则必须在方法之外声明结构。