我在许多项目中都看到了它。为什么开发人员使用内部类来存储C#中的常量变量?
例如:
internal static class Constants
{
public const double Pi = 3.14159;
public const int SpeedOfLight = 300000; // km per sec.
}
答案 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
用于保护常量,防止在程序集外部使用它们。