为什么我们在C#中使用常量的内部类?

时间:2016-07-06 09:52:18

标签: c# constants

我在许多项目中都看到了它。为什么开发人员使用内部类来存储C#中的常量变量?

例如:

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

2 个答案:

答案 0 :(得分:0)

简单地说,设计师决定这个类需要在同一个程序集中使用。并且不得向任何引用程序集的项目公开或访问它。

下载Nuget包时,您无法访问内部类。开发人员决定您不需要访问这些内容。所以这些价值观是私人的#34;对于这个包。

有关访问修饰符的更多信息:

  

public:访问权限不受限制。

     

protected:访问仅限于从包含类派生的包含类或类型。

     

internal:访问仅限于当前程序集。

     

protected internal:访问仅限于从包含类派生的当前程序集或类型。

     

private:访问仅限于包含类型。

答案 1 :(得分:0)

虽然大多数答案都描述了internal的含义,但他们错过了我认为的问题的一部分:为什么要将常量放在内部类中?

这主要是因为他们希望通过感觉像命名空间的东西来识别常量:

double myValue = Constants.Pi * 10;

或者

double myValue = OtherClass.Constants.Pi * 10;

没有内部类,它们看起来更像成员/属性。至少当他们不使用UPPER_CASING进行命名时。

要完成答案:internal用于保护常量,防止在程序集外部使用它们。