Const
variable 变量 ,值可变的
constant 常量,不可变,C# 里关键字是const
当我们定义一个常量的时候,需要立马赋值,以后不能再改这个量了
我们可以把常量定义在 method 里,如下
然而,大多数情况下const是定义在class里的,并且定义好了visibility (private,仅自己的class才能访问,public别的class也能访问)
const 在class里 具有static 成员的属性,也就是说不用实例化class 就可以用这个class里的const,看下图
上图我们没有 实例化someclass,直接用它的变量,public 可以跨class访问,private只能 SomeClass 自己访问
const 时候我们需要立即为这个const 赋值,值或者表达式,表达式要注意,只能是多个 const 之间的运算,看下
用a之前已经const a 了,s1也同样提前 const 过
另:我们不能用一个method的结果 做运算 后赋值为const,因为这不是个const expressions
尽管那个method的结果是一个固定值,也是不允许的。只允许 数字,字符,bool量 或者其他const
const 限制有点多,只能是 数字 字符 bool 或者 其他const,如果想用个类似const 但是限制又没有这么严格的,可以考虑一下 readonly
关键字
这个关键字 不能用在method里,只能用在class里( 但是 const 既可以用在method 里,也可以用在class里)
readonly 定义的量 只能在定义的时候赋值 或者 在class的构造函数里去赋值,一旦一个class实例化以后,这个readonly 定义的量也就固定了,不会再动了
(比const 好的地方就是可以先不赋值,再构造函数里赋值也可以,而const 必须马上就得赋值)