这两种扩展方法之间有什么实际区别吗?
class Extensions
{
public static void Foo<T>(this T obj) where T : class { ... }
public static void Foo(this object obj) { ... }
}
Run Code Online (Sandbox Code Playgroud)
我在扩展溢出中徘徊,我遇到了第一个表单,我以前没用过.好奇有什么区别.
SLa*_*aks 10
扩展方法Object也适用于值类型.(他们将被电话盒装,降低性能)
<T>但是没有的扩展方法where T : class也适用于值类型,但不会对它们进行封装.
另外,<T>可以编写扩展方法typeof(T)来获取其调用的编译时类型.
如果你这样做,请注意它们之间的区别
someButton.Extension();
someButton.Extension<Control>();
someButton.Extension<Object>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |