在c#中有一個偉大的運算符'??'這使生活變得更簡單。我可以寫foo ?? default
而不是寫(foo != null)? foo : default
。有沒有一種簡單的方法可以將這個操作符應用於類別memeber,例如在情況(foo != null)? foo.bar : default
?是否可以使用?班級成員的操作員?
UPD: OK,我會expalin了一下:
string a = (someVeryLongVariableName != null)? someVeryLongVariableName : ""; // Long way
string a = someVeryLongVariableName ?? ""; // Shorter with same result
string a = (someVeryLongVariableName != null)? someVeryLongVariableName.bar : ""; // What's the shorter way in this case?
UPD2:情況時,我需要這個功能看起來是這樣的:
if (foo is MyClass) bar1 = (foo as MyClass).SpecificMember;
if (foo is OneMoreClass) bar2 = (foo as OneMoreClass).AnotherSpecificMember;
if (foo is MyFavoriteClass) bar3 = (foo as MyFavoriteClass).YetAnotherMember;
這將是冷靜,如果我可以縮短這些東西像
bar1 = (foo as MyClass).SpecificMember ?? null;
也許它並不會更短,但它只會將foo轉換爲MyClass一次,並顯式初始化具有默認值的欄。最重要的是它看起來更好。
什麼是不簡單的寫作(foo!= null)? foo.bar:默認?? – 2010-12-05 02:33:35
什麼?我不確定你會變得更簡單...我錯過了什麼嗎? – IAbstract 2010-12-05 02:35:47