我知道在C#中可以像这样声明一个匿名类型的数组:
但是我不理解他们的属性为什么需要按照相同的顺序? 例如,以下代码将无法编译:
这个文本内容需要翻译。
var anons = new[]
{
new { name = "" , something = ""},
new { name = "", something = "" }
};
我理解所有的对象需要具有相同的属性,否则就无法迭代并使用这些属性,例如:
foreach (var anon in anons)
{
Console.WriteLine(anon.name);
}
但是我不理解他们的属性为什么需要按照相同的顺序? 例如,以下代码将无法编译:
var anons = new[]
{
new { name = "" , something = ""},
new { something = "", name = "" }
};
为什么这不被允许,因为在一个普通的对象中,属性可以按照任意顺序声明,并且代码的其余部分可以使用它们,就像现在一样?
ToString()
输出的差异,但我不确定我们中的任何人都能解释为什么做出了特定的设计决策。 - user47589