C#代码通过命名空间重用

Psy*_*nic 2 c# namespaces

我喜欢创建一个充满自定义函数的文件,我可以在另一个项目中使用它.现在我还没有完全理解如何解决这个问题,通常使用像php这样的语言,你只需要创建php文件然后去包含("cust_lib.php")或者调用任何文件.

现在我认为该过程涉及库具有自己的命名空间,然后使用custom_lib; 或者脚本中的custom_lib ::我不想讨论哪个是最好的方法去这里.

这是正确的吗?或者我应该创建库并将其转换为.dll,如果是这样我该怎么做呢,dll里面有什么样的语法等等.

但是,如果它只是在一个项目中的文件,那么我不需要沿着那条路走下去吗?我可以创建命名空间并使用它吗?

这就是我目前正在努力的方向,并认为它会是这样的

namespace Custom_Lib{
  ~~functions to go here~~
}
Run Code Online (Sandbox Code Playgroud)

但是这个功能必须存在于一个类中,不是吗?这就变成了类似的东西

namespace Custom_Lib{
  class custom_lib{

    public string function1(string input){
      return input;
    }

  }
}

所以一些帮助,指针,例子将受到赞赏,所以我可以围绕这个

谢谢,Psy.

(是的,我把它们称为函数,这只是来自一个很长的php/js等背景)

Fre*_*örk 6

通常的方法是创建一个类库项目,将您的类和方法放在该项目中,确保您想要公开的那些项目public.然后在客户端项目中添加对生成的dll文件的引用,您将可以使用类库中的功能.

即使你决定把它全部放在一个文件中,我仍然建议你把它变成一个类库,因为我想这会使它更容易维护.例如,请考虑以下方案:

  • 您决定将其放在一个文件中,并在要使用它的所有项目中包含该文件的副本.稍后您会在代码中发现错误.现在,您将拥有该文件的许多副本以更正错误.
  • 您决定将其放在一个文件中,并在所有项目中包含相同的文件.现在,如果要更改其中的某些行为,您将改变使用它的所有项目的行为.

在这两种情况下,将其作为一个单独的项目保存将为您提供便利:

  • 您只需要维护一份代码副本
  • 您可以决定在更新类库时是否更新某个项目使用的dll.

关于语法问题:是的,所有方法都必须存在于类中.但是,如果类只是方法的容器,则可以创建它(以及方法static):

public static class CustomLib
{
    public static string GetSomethingInteresting(int input)
    {
         // your code here...
    }
}
Run Code Online (Sandbox Code Playgroud)

这样你就不需要创建一个实例CustomLib,但只需调用方法:

string meaningOfLife = CustomLib.GetSomethingInteresting(42);
Run Code Online (Sandbox Code Playgroud)