你能做一个静态/共享的扩展方法吗?

时间:2010-05-21 09:04:12

标签: .net extension-methods

好吧,我可能在这里误解了一些东西,但据我所知......

  • 扩展方法必须包含在模块中,而不是类
  • 您无法在模块静态/共享
  • 中创建方法
  • 因此,如果没有实例化它,就不能对类使用扩展方法。

换句话说,你不能在名为“MyExtensionMethod”的String上创建扩展方法并使用:

String.MyExtensionMethod("String")

但相反..

Dim test As String
test.MyExtensionMethod("string")

这是对的吗?或者有没有办法让扩展方法作为静态方法工作?

1 个答案:

答案 0 :(得分:10)

你是对的。扩展方法只能对类型的实例起作用。

不,不幸的是,没有狡猾的方法来编写对类型本身起作用的扩展方法,表现得像静态方法。