首页 > 解决方案 > 如何正确设置我的通用 C# 代码,以便我可以使用 using 指令访问它们?

问题描述

我希望能够组织我最常见的代码元素,以便可以使用类似于以下的 using 语句“包含”它们

using System;
using System.IO;

我可以在一定程度上做到这一点,但是由于 C# 关于命名空间和类的规则,我无法直接访问我的东西,我总是必须将它添加到一个类中,然后通过 .item 访问它。

例如,如果我创建一个名为 MyStuff.cs 的 C# 文件,如下所示:

namespace MyStuff
{
  public static class MyClass
  {
      public static int MyCode(...)
      {
          ...
      }
  }
}

我必须在我的其他代码中使用它,如下所示:

using MyStuff
...

    int result = MyClass.MyCode(...);
...

我希望能够像这样访问它(没有 MyClass):

using MyStuff
...

    int result = MyCode(...);
...

但我无法让它发挥作用。我在某处读到将“静态”添加到它们所在的类中,然后不需要点符号,但这似乎不是真的。

任何人都可以解释如何做到这一点,还是我坚持额外的层?

谢谢!

标签: c#

解决方案


我不认为它可以做到。

为了从命名空间中直接访问某些东西,它必须是一个对象。函数不能直接放在命名空间内。

您可以通过为“对象”类的实例编写扩展方法来使用扩展方法来实现您想要的(这更像是一种黑客行为)。但是您仍然必须以这种方式调用它,this.MyCode()。

另一个解决方案是有一个超类,你有这个函数 MyCode() 并从那里继承你要使用 MyCode() 的地方,但我很确定你已经考虑过一些基本的东西。


推荐阅读