2010-05-21 28 views
8

OK,我可能误解了,但这里的东西,据我可以看到... ...你可以做一个扩展方法Static/Shared?

  • 扩展方法必须被包含在一个模块中,而不是一类
  • 你不能让模块中的方法静态/共享
  • 因此,您不能在没有实例化的情况下在类上使用扩展方法。

换句话说,你不能对字符串的扩展方法称为 “MyExtensionMethod” 及用途:

String.MyExtensionMethod("String") 

但是相反..

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

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

回答

9

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

不,不幸的是,没有狡猾的方式来编写扩展方法,这些扩展方法本身就是作用于类型的,像静态方法一样。

+1

感谢您的回答。看起来像一个令人难以置信的监督虽然,因为现有的框架对象上的大多数“帮助类型”函数功能为静态:( – 2010-05-21 09:12:49

相关问题