3

我有一个带有多个匿名对象的静态类。每个对象都有不同数量的属性,但每个属性始终是创建类的对象。

static public class Fields{
    static public Object FieldInfo1 = new {
        Customer = new FieldInformation("value1","value2")        
    } 

    static public Object FieldInfo2 = new {
        Customer = new FieldInformation("value1","value2"),
        Company = new FieldInformation("value1","value2"),        
    } 
}

我尝试访问Fields.FieldInfo1.Customer二等舱(Program.cs,它是一个控制台应用程序),但它不起作用,我只得到Fields.FieldInfo1.我做错了什么?

4

1 回答 1

4

您需要将其转换为对象的类型。因为您没有(在编译时)演员表as dynamic

var obj = Fields.FieldInfo1 as dynamic;
var value = obj.Customer.Prop1; // "value1"

但我不明白为什么你需要这样做。这不像 C#,它是一种强类型语言。在我看来,你应该重新考虑你的设计。

可能会给您一个起点,让您了解何时使用匿名类型是正确的

于 2016-08-24T07:46:37.697 回答