是否有可能有一个适用于其他项目的扩展类?

时间:2014-04-30 14:27:40

标签: c# .net extension-methods

C#编写扩展类时,它使用this关键字表示此扩展方法适用于此命名空间的对象。

现在如果我想编写一个适用于其他项目的扩展类怎么办?例如,让我们说 Controls 项目有这个类,而我的 Main 项目有一个对Controls porject的引用想要调用扩展方法,是否可以在所有?或者我也应该重写Main项目中的类?

2 个答案:

答案 0 :(得分:4)

不要复制方法;你想要什么是完全可能的。如果您的类及其扩展都在Controls项目中声明,则可以访问Main中的扩展方法。您只需记住添加using语句以包含声明扩展方法的命名空间。

答案 1 :(得分:1)

这绝对是可能的。
我猜你错过了相应的using语句,因为Visual Studio没有提供任何指导。

我倾向于将扩展名放在与我扩展类型相同的名称空间中,因此如果使用类型名称空间,则扩展名也可见。
例如。 String的扩展程序位于System名称空间而不是MyApp.Something.Extensions 如果其他开发人员应该使用它们,这尤其有用,因为他们可能永远不会知道它们的存在。