C# 为什么不能在类中声明const静态字符串
为什么不能在类中声明const静态字符串?在C#语言(以及PHP)中,必须使用静态只读,C# 为什么不能在类中声明const静态字符串,c#,C#,为什么不能在类中声明const静态字符串?在C#语言(以及PHP)中,必须使用静态只读,const是隐式的static,因此不能同时使用这两个关键字。这与C和C++不同,在这里,代码> const 不表示变量是否是静态的,只是它的值是不可修改的。 您可以这样声明一个常量字符串: const string SomeConstant = "abc"; const字段和staticreadonly字段之间也有细微的区别,但它们的相似之处在于不能更改它们的值。详情请参阅 所有常量声明都是 隐式静态,而
const
是隐式的static
,因此不能同时使用这两个关键字。这与C和C++不同,在这里,代码> const 不表示变量是否是静态的,只是它的值是不可修改的。
您可以这样声明一个常量字符串:
const string SomeConstant = "abc";
const
字段和staticreadonly
字段之间也有细微的区别,但它们的相似之处在于不能更改它们的值。详情请参阅
所有常量声明都是
隐式静态,而C#
规范规定
(冗余)包含静态
禁止使用修改器。我相信这一点
是为了避免可能出现的混乱
如果读者看到两个
常量,一个声明为静态,一个
不是——他们可以很容易地假设
规格上的差异
这意味着语义上的差异。
话虽如此,却没有任何理由
禁止重复指定
访问修饰符,也是
默认值,其中有一个选项。
例如,(具体的)方法可以
被明确标记为私有
尽管这是默认情况。这个
规则似乎是在有
无选择(例如方法声明
在接口中)冗余
禁止使用修改器。哪里有
一个选择,这是允许的
摘自我写了一篇关于这个的博客,这会让你更好地理解。看一看
大多数
原语
类型用作常量,而其他类型用作静态只读
此问题与我的问题相同。有关详细信息,请参阅我关于此主题的文章: