我可以定義一個擴展方法,以確定是否一個對象爲空擴展方法中「T」(TArg0,TEnum,TInt)的含義是什麼?
public static bool IsNull(this object obj) {
if (obj == null)
return true;
else return false;
}
但我也可以這樣做:
public static bool IsNull<T>(this T obj) {
if(obj == null)
return true;
else return false;
}
兩者都被應用到每一個對象。這個T的目的是什麼?爲了進一步闡述預期的類型?如果是,爲什麼這樣:typeof(T)
是可能的? 背後的原因是什麼(不管怎麼樣,正如@MatthewWatson指出的那樣)(this T obj) where T: int)
(其中)那麼呢?
這麼多問題。
你不能有'where T:int',這是一個編譯錯誤。你在哪裏看到的? –
您是否閱讀了手冊(http://msdn.microsoft.com/zh-cn/library/twcad0zb%28v=vs.110%29.aspx)[第一頁](http://msdn.microsoft.com /en-us/library/d5x73970.aspx)? – Jon
[泛型類型參數](http://msdn.microsoft.com/en-us/library/0zk36dx2.aspx)和[對類型參數的約束](http://msdn.microsoft.com/en-us/library /d5x73970.aspx) – Oded