命名空间 c# 中的方法
本文关键字:方法 命名空间 | 更新日期: 2023-09-27 18:34:03
有没有办法调用命名空间内的函数而不在 c# 中声明类。
例如,如果我有 2 个完全相同的方法,应该在我的所有 C# 项目中使用,有没有办法只获取这些函数并将其制作成 dll,然后在顶部说"使用 myTwoMethods"并开始使用这些方法而不声明类?
现在,我做:MyClass.MyMethod();
我想做:MyMethod();
谢谢Rohit
2015年更新:不,您不能在 C# 中创建"自由函数",但从 C# 6 开始,您将能够在不提及类名的情况下调用静态函数。C# 6 将具有允许以下语法的"使用静态"功能:
static class MyClass {
public static void MyMethod();
}
其他文件.cs:
using static MyClass;
void SomeMethod() {
MyMethod();
}
不能在类外部声明方法,但可以使用类库项目中的静态帮助程序类执行此操作。
public static class HelperClass
{
public static void HelperMethod() {
// ...
}
}
用法(添加对类库的引用后)。
HelperClass.HelperMethod();
根据我们正在讨论的方法类型,您可以研究扩展方法:
http://msdn.microsoft.com/en-us/library/bb383977.aspx
这使您可以轻松地向现有对象添加额外的功能。
根据使用扩展方法的建议,您可以将该方法作为 System.Object 的扩展方法,所有类都派生自 System.Object。我不主张这样做,但关于你的问题,这可能是一个答案。
namespace SomeNamespace
{
public static class Extensions
{
public static void MyMethod(this System.Object o)
{
// Do something here.
}
}
}
您现在可以在有using SomeNamespace;
的任何地方编写类似MyMethod();
的代码,除非您在静态方法中(然后您必须执行Extensions.MyMethod(null)
)。