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.Customer2 番目のクラス (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 に答える