const和readonly
说道定义的变量不容修改的问题 ,不得不说起C#中还有一个readonly关键字,也是使用在字段上定义不容修改的值,但是const和readonly有几个区别,
区别1) 在语法上,const定义的字段只能在字段声明时初始化,而readonly字段既可以在声明时初始化,也可以在构造 函数中初始化,根据不同的初始化,readonly定义的字段可能会得到不同的值.
区别2) 在编译时,因为const字段在声明时即初始化,所以是编译时常数,而readonly字段虽然是只读的,其值却可能要等到一个对象初始化后才能知晓,所以可以是运行时常数(但readonly字段如在声明时初始化仍是编译时常数).
区别3) 在使用时,const字段不能用static关键字修饰,但readonly可以.
区别1) 在语法上,const定义的字段只能在字段声明时初始化,而readonly字段既可以在声明时初始化,也可以在
区别2) 在编译时,因为const字段在声明时即初始化,所以是编译时常数,而readonly字段虽然是只读的,其值却可能要等到一个对象初始化后才能知晓,所以可以是运行时常数(但readonly字段如在声明时初始化仍是编译时常数).
区别3) 在使用时,const字段不能用static关键字修饰,但readonly可以.