簡體   English   中英

為什么我們在C#中將內部類用於常量?

[英]Why do we use internal classes for constants in C#?

我在很多項目中都看到了。 開發人員為什么要使用內部類在C#中存儲常量變量?

例如:

internal static class Constants
{
    public const double Pi = 3.14159;
    public const int SpeedOfLight = 300000; // km per sec.
}

簡單地說,設計人員認為此類需要在同一裝配中使用。 並且不應將其公開或從引用該程序集的任何項目中訪問。

當您下載Nuget程序包時,您將無法訪問內部的類。 開發人員認為您不需要訪問它們。 因此,這些值對於此軟件包是“私有”的。

有關訪問修飾符的更多信息:

public:訪問不受限制。

protected:訪問僅限於包含的類或從包含的類派生的類型。

內部:訪問僅限於當前程序集。

protected internal:訪問僅限於當前程序集或從包含類派生的類型。

private:訪問僅限於包含類型。

盡管大多數答案都描述了internal的含義,但它們卻缺少了我認為的一部分問題: 為什么將常量放入內部類中?

這主要是因為他們可以希望通過某種感覺像是名稱空間來標識常量:

double myValue = Constants.Pi * 10;

要么

double myValue = OtherClass.Constants.Pi * 10;

沒有內部類,它們將更像成員/屬性。 至少當他們不使用UPPER_CASING命名時。

要使答案完整: internal用於保護常量,以防止在組件外部使用它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM