[英]C# code re-use via namespaces
我喜欢创建一个充满自定义功能的文件,该文件可以在其他项目中使用。 现在,我还不完全了解如何执行此操作,通常使用php之类的语言,您只是创建php文件,然后转到include(“ cust_lib.php”)或任何称为该文件的文件。
现在,我认为该过程涉及该库具有其自己的名称空间,然后要么使用custom_lib,要么使用custom_lib。 或在脚本中使用custom_lib::(我不想讨论其中的最佳方法)。
这是正确的吗? 还是应该创建该库并将其转换为.dll,如果是这样,我该如何处理,dll在其中包含哪种语法等。
但是,如果它只是一个项目中的文件,那么我不需要走那条路线吗? 我可以创建命名空间并使用它吗?
这就是我目前正在工作的,并且认为这会是这样的
namespace Custom_Lib{
~~functions to go here~~
}
但是功能必须存在于类中,不是吗? 这样就变成了
namespace Custom_Lib{ class custom_lib{ public string function1(string input){ return input; } } }
因此,我们将不胜感激一些帮助,指针和示例,以便我可以解决这个问题
谢谢,Psy。
(是的,我称它们为函数,仅来自较长的php / js等背景)
通常的方法是创建一个类库项目,将您的类和方法放入该项目中,确保要公开的类和方法是public
。 然后,在客户端项目中添加对生成的dll文件的引用,您将可以使用类库中的功能。
即使您决定将所有内容放到一个文件中,我仍然建议您将其设置为类库,因为我认为这样做会使维护变得更容易。 例如,考虑以下情形:
在这两种情况下,将其保存为单独的项目将为您带来便利:
关于语法问题:是的,所有方法都必须存在于一个类中。 但是,如果类仅是方法的容器,则可以使其(和方法为static
):
public static class CustomLib
{
public static string GetSomethingInteresting(int input)
{
// your code here...
}
}
这样,您将无需创建CustomLib
的实例,而只需调用该方法:
string meaningOfLife = CustomLib.GetSomethingInteresting(42);
除了FredrikMörk的书面答复和即时答复外,我还要添加以下内容:
而是将相关方法分组为较小的类,以便您和库的使用者可以更轻松地找到所需的功能。 另外,如果您的库使用类级变量,则可以限制其范围。
此外,如果您稍后决定添加线程功能到您的库中,或者如果您的库用于多线程应用程序中,则静态方法可能会成为您的噩梦。 这是一个严重的问题,不容忽视。
这里没有问题。 您自己回答了。 是的,您必须构造一个包含所有辅助方法的类。 是的,如果要在多个项目中重复使用,可以将其编译为dll,也可以仅将源文件添加到项目中。
通常,我将帮助程序类和所有函数声明为静态的,以避免每次使用该类时都将其初始化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.