我第一次制作了一個包,我一直在我的一個專案中使用MyPackage.Parse(),預期用途是,但目前它必須用作MyPackage.MyPackage.Parse().
該包分為兩個專案,MyPackage和MyPackage.Tests. MyPackage 有一個類檔案 MyPackage,它看起來像
namespace MyPackage
{
public static class MyPackage
{
public static PackageModel Parse(string text)
{
}
}
}
我猜我遇到了問題,因為 Parse 在靜態 MyPackage 類中,該類位于 MyPackage 命名空間中。
用戶還可以訪問我對展示它們并不感興趣的其他檔案夾和檔案,例如MyPackage.Constants, MyPackage.Services.
那么如何創建一個 NuGet 包,最終結果是他們可以使用MyPackage.Parse()?
uj5u.com熱心網友回復:
命名空間不是強制性的,因此您可以將您的類放在隱式全域命名空間中。然后,客戶端不需要使用命名空間來限定您的類。
但是,請不要那樣做。目前,您的客戶需要做的只是using MyPackage;在他們的檔案頂部添加一個簡單的,以實作您想要的。這是一個很好的做法。
命名空間的存在是為了避免名稱沖突,當您不使用它們時,您將面臨名稱沖突的風險。更糟糕的是,您的客戶也面臨名稱沖突的風險。如果他們正在使用另一個具有名為 的類的包MyPackage,他們將幾乎無法再使用您的類,只能通過丑陋的語法結構。因此,約定是使用命名空間,即使這意味著您的客戶端必須添加 using 陳述句。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/406530.html
標籤:
