428
|
jjnguy Julien Chastang · 技术社区 · 16 年前 |
![]() |
1
676
A.
|
![]() |
2
113
从 C# language specification (PDF第287页或PDF的第300页):
|
![]() |
3
37
const成员被编译器认为是静态的,也意味着常量值语义,这意味着对常量的引用可能会被编译成使用代码作为常量成员的值,而不是对成员的引用。 换句话说,一个包含值10的const成员可能会被编译成将其用作数字10的代码,而不是对const成员的引用。 这与静态只读字段不同,静态只读字段将始终被编译为对该字段的引用。 注意,这是JIT之前的版本。当JIT'ter发挥作用时,它可能会将这两个值编译为目标代码中的值。 |
![]() |
4
8
C#
好吧,现在我意识到这个问题是在4年前提出的,但由于我花了大约2个小时的时间,包括尝试各种不同的答案和代码格式,我仍然在发布这个答案。:) 但是,郑重声明,我仍然觉得有点傻。 |
![]() |
5
7
来自MSDN: http://msdn.microsoft.com/en-us/library/acdd6hb7.aspx …此外,虽然 const字段是编译时常数 ,只读字段可用于运行时常量。.. 因此,在const字段中使用static就像在C/C++中试图使一个已定义的(带有#define)静态。..由于它在编译时被其值替换,因此它对所有实例都会启动一次(=静态)。 |
![]() |
6
2
const类似于static,我们可以用类名访问这两个变量,但diff是静态变量可以修改,const不能。 |