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

Bob*_*way 8 .net extension-methods

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

  • 扩展方法必须包含在模块中,而不是类中
  • 您无法在模块静态/共享中创建方法
  • 因此,您无法在不实例化的情况下对类使用扩展方法.

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

String.MyExtensionMethod("String")
Run Code Online (Sandbox Code Playgroud)

但反而 ..

Dim test As String
test.MyExtensionMethod("string")
Run Code Online (Sandbox Code Playgroud)

它是否正确?或者有没有办法让扩展方法作为静态方法工作?

Luk*_*keH 10

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

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