C# 有可能有一个扩展类也适用于其他项目吗?

C# 有可能有一个扩展类也适用于其他项目吗?,c#,.net,extension-methods,C#,.net,Extension Methods,在C语言中,当我们编写一个扩展类时,它使用this关键字表示这个扩展方法在这个名称空间的对象上工作 现在,如果我想编写一个扩展类,它也适用于其他项目,该怎么办?例如,假设我的Controls项目有这个类,我的主项目有一个对Controls的引用,porject想要调用扩展方法,这可能吗?或者我也应该重写主项目中的类?不要重复这些方法;你想要的是完全可能的。如果类及其扩展都在控件项目中声明,则可以访问Main中的扩展方法。您只需记住添加一个using语句来包含声明扩展方法的名称空间。不要重复这些方

在C语言中,当我们编写一个扩展类时,它使用this关键字表示这个扩展方法在这个名称空间的对象上工作


现在,如果我想编写一个扩展类,它也适用于其他项目,该怎么办?例如,假设我的Controls项目有这个类,我的主项目有一个对Controls的引用,porject想要调用扩展方法,这可能吗?或者我也应该重写主项目中的类?

不要重复这些方法;你想要的是完全可能的。如果类及其扩展都在控件项目中声明,则可以访问Main中的扩展方法。您只需记住添加一个using语句来包含声明扩展方法的名称空间。

不要重复这些方法;你想要的是完全可能的。如果类及其扩展都在控件项目中声明,则可以访问Main中的扩展方法。您只需要记住添加一个using语句来包含声明扩展方法的名称空间。

这是绝对可能的。 我想您缺少了适当的using语句,因为VisualStudio没有提供这方面的任何指导

我倾向于将扩展放在与我要扩展的类型相同的名称空间中,因此如果使用类型名称空间,那么扩展也是可见的。 例如,字符串的扩展名位于系统命名空间中,而不是MyApp.Something.extensions。
如果其他开发人员应该使用它们,这尤其有用,因为他们可能永远不知道它们的存在。

这是绝对可能的。 我想您缺少了适当的using语句,因为VisualStudio没有提供这方面的任何指导

我倾向于将扩展放在与我要扩展的类型相同的名称空间中,因此如果使用类型名称空间,那么扩展也是可见的。 例如,字符串的扩展名位于系统命名空间中,而不是MyApp.Something.extensions。
如果其他开发人员应该使用它们,这一点尤其有用,因为他们可能永远不知道它们的存在。

只要您的控制项目正在编译,并且您的主项目中有控制项目的引用,它就应该工作,就像所有其他类一样。只要确保在using指令中指定扩展类的名称空间,无论您在哪里使用它。Visual studio不会为您提供解析扩展方法的选项。扩展方法最常见的用途之一是用于跨程序集扩展:否则,您可以只编辑原始代码。因此,是的,这将很好地工作。扩展基于命名空间,并且导入。。。因此,如果您扩展,例如,TreeView类,然后将该扩展放置在一个类中,您将能够在任何项目中的任何位置使用它,只要您将该类或库包括在内(如果您在项目中像这样构建它)…只要您的控制项目正在编译并且您在主项目中有控制项目的引用,它应该像所有其他课程一样有效。只要确保在using指令中指定扩展类的名称空间,无论您在哪里使用它。Visual studio不会为您提供解析扩展方法的选项。扩展方法最常见的用途之一是用于跨程序集扩展:否则,您可以只编辑原始代码。因此,是的,这将很好地工作。扩展基于命名空间,并且导入。。。因此,如果您扩展,例如,TreeView类,然后将该扩展放在一个类中,您将能够在任何项目中的任何地方使用它,只要您在项目中像那样构建这个类或库……是的,这只是使用的问题,我依赖于Visual Studio的intellisence。谢谢。是的,只是使用的问题,我依赖Visual Studio的智能。谢谢