比较const ,readonly, stitac readonly

比较const ,readonly, stitac readonly:app

  1. constreadonly的值一旦初始化则都再也不能够改写;
  2. const必须在声明时初始化;readonly既能够在声明时初始化也能够在构造器中初始化,由于见4;
  3. const隐含static,不能够再写static constreadonly则不默认static,如须要能够写static readonly
  4. const是编译期静态解析的常量(所以其表达式必须在编译时就能够求值); readonly则是运行期动态解析的常量, static readonly字面就是实例时赋值
  5. const既可用来修饰类中的成员,也可修饰函数体内的局部变量;readonly只能够用于修饰类中的成员。
  6. const访问必须以"Classname.VariableName"方式访问,而readonly访问必须以"InstanceName.VariableName"方式访问。

代码说明问题函数

  const关键字post

class ConstantEx
    {
        public const int number =3;
    }

    class Program
    {
        static void Main(string[] args)
        {
            //若是这里使用 ConstantEx.number=10 会出错,在整个app内该值不可改变
            Console.WriteLine(ConstantEx.number);// 类名+常量访问
            Console.ReadLine();
        }
    }

  readonly关键字spa

class ReadOnlyEx
    {
       //说明该值能够在运行时改变,即在实例化时改变该值
        public readonly int number = 10;
        public ReadOnlyEx()
        {
            number =20;
        }
        public ReadOnlyEx(bool IsDifferentInstance)
        {
            number = 100;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            //必须实例化后访问
            ReadOnlyEx readOnlyInstance = new ReadOnlyEx();
            Console.WriteLine(readOnlyInstance.number);

            ReadOnlyEx differentInstance = new ReadOnlyEx(true);
            Console.WriteLine(differentInstance.number);

            Console.ReadLine();
        }
    }
相关文章
相关标签/搜索