Я пытаюсь сделать это:
var order = new BuildingOrder(); //has a Sale property
var sale = order.ConfusinglyGet(() => order.Sale); //get value of order.Sale
Пока все, что я могу понять, это:
public static O ConfusinglyGet<O>(this object i, Expression<Func<O>> expression)
{
return expression.Compile()();
}
Вернет ли это значение свойства?
В конечном итоге я хочу иметь возможность проверить, является ли i
нулевым, и при желании вернуть new O()
как
public static O FreemasonsOnly<I,O>(this I i, Expression<Func<O>> expression)
where I : class,
where O : class, new()
{
return i != null ? expression.Compile()() : new O();
}