Atr*_*gma -2 .net c# linq extension-methods
我可以定义一个扩展方法来确定一个对象是否为null
public static bool IsNull(this object obj) {
if (obj == null)
return true;
else return false;
}
Run Code Online (Sandbox Code Playgroud)
但我也可以这样做:
public static bool IsNull<T>(this T obj) {
if(obj == null)
return true;
else return false;
}
Run Code Online (Sandbox Code Playgroud)
两者都适用于每个对象.这个T的目的是什么?进一步阐述预期的类型?如果是的话,为什么这样:typeof(T)是可能的?那么(正如@MatthewWatson指出的那样,这无论如何都不起作用)(this T obj) where T: int)(在哪里)背后的原因是什么?
这么多的问题.
这T是Generic方法的类型参数.
有关泛型的MSDN文档,请参见此处:http://msdn.microsoft.com/en-us/library/512aeb7t.aspx
它与扩展方法没有特别关系; 这与仿制药有关.
| 归档时间: |
|
| 查看次数: |
465 次 |
| 最近记录: |