readonly 和 const
-
const
- const 修饰的是一常量;
- const常量必须在定义的时候初始化,并其值不可以再改变;
-
readonly
- readonly允许把一个字段设置为常量,但还需要作一些计算,以确定他的初始值;
- readonly字段只可以构造函数内对其进行赋值;
- 示例代码,如下:
using System; namespace MyCSharpPro { public class ReadOnlyTest { class SampleClass { public int x; // Initialize a readonly field public readonly int y = 25; public readonly int z; public SampleClass() { // Initialize a readonly instance field z = 24; } public SampleClass(int p1, int p2, int p3) { x = p1; y = p2; z = p3; } } static void Main() { SampleClass p1 = new SampleClass(11, 21, 32); // OK Console.WriteLine("p1: x={0}, y={1}, z={2}", p1.x, p1.y, p1.z); SampleClass p2 = new SampleClass(); p2.x = 55; // OK Console.WriteLine("p2: x={0}, y={1}, z={2}", p2.x, p2.y, p2.z); } } }
- readonly字段还可以是一个实例字段,
- readonly字段是静态字段时,必须显式的声明它;