C#中扩展方法和方法的区别

时间:2010-11-26 05:56:25

标签: c# methods extension-methods

C#中的Extension MethodsMethods之间有什么区别?

3 个答案:

答案 0 :(得分:7)

我认为你真正想要的是Static and Instance Methods

之间的区别

在一天结束时,扩展方法是一些不错的编译器魔术和语法糖,允许您调用静态方法,就像它是在特定类实例上定义的方法一样。但是, NOT 是一个实例方法,因为必须将该特定类的实例传递给函数。

答案 1 :(得分:4)

ExtensionMethods:让你为类定义一组方法,而不继承继承的另一个好处。

方法:它们用于实现类的操作定义。

See example of Extension Methods

答案 2 :(得分:3)

扩展方法的一个非常好的功能是可以在null对象上调用它们,请参阅:

myclass x = null;
x.extension_method(); // this will work
x.method(); // this won't

遗憾的是,例如 string 的大多数方法都不是扩展方法,毕竟

x.ToLower();
如果 x 为null,

应返回null。我的意思是,它会很有用。

当我需要这种空透明度时,我更喜欢编写扩展方法。