我曾在很多项目中见过它。为什么开发人员使用内部类来存储C#中的常量变量?为什么我们在C#中使用内部类常量?
例如:
internal static class Constants
{
public const double Pi = 3.14159;
public const int SpeedOfLight = 300000; // km per sec.
}
我曾在很多项目中见过它。为什么开发人员使用内部类来存储C#中的常量变量?为什么我们在C#中使用内部类常量?
例如:
internal static class Constants
{
public const double Pi = 3.14159;
public const int SpeedOfLight = 300000; // km per sec.
}
简单地说,设计师决定,这个类必须相同组件内使用。它不会暴露于任何引用程序集的项目,也不能从其中访问。
当你下载一个Nuget包时,你不能访问内部的类。开发者决定你不需要访问这些。所以这些值是这个包的“私有”。
更多关于访问修饰符:
市民:访问不受限制。
保护:访问限于从包含类派生的包含类或类型。
internal:访问仅限于当前程序集。
受保护的内部:访问受限于当前程序集或从包含类派生的类型。
private:Access仅限于包含类型。
它是这样的,它只能被当前组件访问的类接收。这是为了防止您在解决方案中可能使用的其他项目的使用。
阅读下面访问修饰符:
https://msdn.microsoft.com/en-us/library/ba0a1yw2.aspx?f=255&MSPPError=-2147217396
虽然大多数的答案描述internal
他们缺少我认为问题的一部分含义:为什么把常量在内部类?
这主要是因为它能他们希望通过东西的感觉就像一个命名空间,以确定的常数:
double myValue = Constants.Pi * 10;
或者
double myValue = OtherClass.Constants.Pi * 10;
如果没有内部类,他们看起来更像成员/属性。至少当他们不使用UPPER_CASING作为命名时。
为了使答案完整:internal
用于保护常数,防止在组件外使用它们。
内部类与常量没有任何关系。这两者之间没有任何关系。另外,C#中的类默认是内部的(在名称空间中声明的)。 – Nasreddine
你知道'internal'关键字是什么以及为什么使用它?制作“内部”类并不是强制性的,我个人认为拥有一个常数值为const的值不是一个好的设计选择。 – Jite
[C#中“internal”关键字的实际用法)的可能重复(http:// stackoverflow。com/questions/165719/practical-uses-the-internal-keyword-in-c-sharp) – Kahbazi