黑马程序员--const与readonlyde区别

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------


 readonly 修饰符用来表示只读的,const用来表示不变常量;readonly与const都是标识常量的!

   不同点:

 1、初始化不同!

      const必须在声明的同时就赋值:

       例如:public const int MaxVlaue=10;//正确,

                   public const int MaxVlaue;//错误。

      readonly字段可以在初始化的过程中赋值(声明或是构造函数中),记住是在初始化的过程中,也就是在其它地方是不可以的!

      例如:public readonly int a=10;

                  public readonly int b;//正确

                  public Class1()

                   {

                    b=24;//正确

                    }

                  public void Class2()

                   {

                    b=24;//错误

                    }

       同时readonly是实例成员;什么是实例成员呢;

      例如:public readonly Color Red=new Color(255,0,0);

      2、const字段是编译时常数,而readonly字段可用于运行时常数。

             const例子:

             public const int n=1;//正确

             public const int m=n+1;//正确

              而

            public const int k=a+2;//错误

       解析:const是编译的时候运行的,所以在初始化的时候必须去赋值,否则编译是不通过的;这也就是运行时变量和编译时变量的区别,a是一个变量只有在运行的时候才知道值是多少,所以下面的那句是错误的!

           readonly例子:

            public readonly int k =a+1;

   3、const默认就是静态的,而readonly如果要设置成静态的就必须显式的声明。

  4、const修饰的值的类型都是有限制的,就不再一一列举了!

              


---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值