[英]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.