2012-10-24 24 views
-1

如何打開下面的方法到與任何引用類型工作的通用方法:如何創建一個適用於任何引用類型的方法?

public string CheckNull(string value, string defaultvalue) 
{ 
    return (value == null) ? defaultvalue : value; 
} 
+11

爲什麼你需要?調用者可以使用'someValue? defaultValue' - 內置。 –

+0

我可以使用什麼C#運算符,使得該方法不必要? – CyberTramp

+0

@Cyber​​Tramp看看我的答案,和RV1987的。它是空合併運算符。 –

回答

5

您可以使用類似:

public T CheckNull<T> (T value, T defaultValue) 
    where T : class 
{ 
    return value ?? defaultValue; 
} 

雖然,它通常是有意義的只是使用null-coalescing operator直接而不是用方法包裝它。

編輯

關於你的評論,你正在編寫更多的代碼來做到這一點是建立在框架已經不錯了。

public void Foo (Bar bar) 
{ 
    var myBaz = bar.Baz ?? new Baz(); 
} 

這將做同樣的事情,所有這些額外的代碼,我有以上:

public void Foo (Bar bar) 
{ 
    var myBaz = CheckNull (bar.Baz, new Baz()); 
} 

更多打字不歸路。

相關問題