初始化底層對象有人問我,什麼是錯/如何能在以下情形可以固定擴展「WhenNull」檢查null並通過拉姆達
Customer customer = null;
customer.WhenNull(c => new Customer())
.Foo();
// instead of
Customer customer = null;
if (customer == null)
{
customer = new Customer();
}
customer.Foo();
一位開發商向我WhenNull延長他的版本
public static T WhenNull<T>(this T source, Action<T> nullAction)
{
if (source != null)
{
return source;
}
if (nullAction == null)
{
throw new ArgumentNullException("nullAction");
}
nullAction(source);
return source;
}
他的問題/意圖是,他不希望指定lambda表達式的基本對象(在這種情況下,「客戶」)
Customer customer = null;
customer.WhenNull(c => customer = new Customer())
.Foo();
我認爲這是做不到的。
這是正確的嗎?
我迷路了一下 - 你想達到哪一個?哪一個是錯的? – Grzenio 2010-09-28 10:58:57