私のコードでは、いくつかのプロパティ ゲッターを呼び出して値にアクセスする必要があります。
IFoo1 a = objA.Prop1.Value;
IFoo2 b = objB.Prop2.Prop3.Value;
IFoo3 c = objC.Prop4.Prop5.Prop6.Value;
すべてのプロパティは null にすることができます。したがって、すべての値にアクセスするには、ネストされた if ブロックを使用する必要があります。
IFoo2 b = null;
if(objB.Prop2!=null)
{
if(objB.Prop2.Prop3!=null)
{
b = objB.Prop2.Prop3.Value;
}
}
このコードを改善して、if ブロックの量を減らすにはどうすればよいですか? ラムダ式、LINQ、IExpression などを使用して、何らかの方法で次のものに置き換えることはできますか。
IFoo2 b = GetVal(objB.Prop2.Prop3.Value);
すべての PropX はさまざまなタイプであり、私はそのようなプロパティを何百も持っています。.NET 3.5 または少なくとも .NET 4.0 を使用する必要があります。それ以降のバージョンは使用できません。
重要な編集:
Visual Studio 2012 および 2013 も使用する必要があります。VS 2015 をターゲットにすることはできません。