C#中编译时赋值和运行时赋值有区别

2024-12-20 07:46:25
推荐回答(2个)
回答1:

先编译后运行的,const和readonly虽然都不能改变值,量const是常量,而readonly却是修饰变量,二者有本质区别。另外static readonly修饰的变量好像是在编译时赋值吧?它可以在运行时赋一次值。

回答2:

readonly可在三种条件下重复赋值:1,编译时直接赋值;2,实参构造器赋值;3,静态构造器赋值。
以下条件例外:
1,构造器内部的匿名方法
2, class A{
readonly int x;
A(A, a){
this.x=1; //对
a.x=1 //错