有人可以描述当在.Net中的方法中定义常量时会发生什么(从内存管理的角度来看)?
答案 0 :(得分:7)
常量通常在编译时解析并直接插入到指令序列中。例如:
const int A = 10;
int b;
int i = A + b;
将有效地编译成:
int i = 10 + b;
对于字符串,它们被实习并放在堆上。
答案 1 :(得分:1)
当编译器在C#源代码中遇到常量标识符时,它将文字值直接替换为它生成的中间语言(IL)代码,因为在运行时没有与常量关联的变量地址,const字段不能通过引用,不能在表达式中显示为l值。有关详细信息,请查看Msdn。上的Constants