zoukankan      html  css  js  c++  java
  • readonly 与 const

    1. readonly
      1. MSDN定义:readonly 关键字是可以在字段上使用的修饰符。当字段声明包括 readonly 修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者出现在同一类的构造函数中。
      2. readonly修饰的字段只能在两个地方对其赋值,第一个是初始化字段的时候,第二个是构造函数中。
         1 class Age
         2     {
         3         //第一个可赋值的地方
         4         //private readonly int _year = 20;
         5         readonly int _year;
         6 
         7         Age(int year)
         8         {
         9             //第二个可赋值的地方
        10             _year = year;
        11         }
        12         void ChangeYear()
        13         {
        14             //除了上面两除,其他方式都不能改变它的值
        15             //编译不能通过
        16             _year = 1967;
        17         }
        18     }
      3. readonly修饰数组时,使数组长度不可改变,数组中每个元素的值是可以改变的。
    2. const
      1. MSDN定义:const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改。
      2. const 修饰的字段只能在初始化字段的地方为其赋值。
      3. const定义的常量在程序运行过程中只有一份拷贝,省内存。
         1     class Age
         2     {
         3         //唯一可赋值的地方
         4         const int _year = 20;
         5 
         6         Age(int year)
         7         {
         8             //编译不能通过
         9             _year = year;
        10         }
        11         void ChangeYear()
        12         {
        13             //编译不能通过
        14             _year = 1967;
        15         }
        16     }
    3. 区别:
      1. const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。
      2. 由于readonly字段可在构造函数中赋值,在不同的实例中可以有不同的值。而const字段相当于常量,在不同的实例中具有相同的值。
      3. 另外,const 字段是编译时常量,而 readonly 字段(配合static修饰符)可用于运行时常量
  • 相关阅读:
    mac本地如何搭建IPv6环境测试你的APP
    消息通知机制(NSNotification和NSNotificationCenter)
    Xcode 6制作动态及静态Framework
    html格式化输出JSON( 测试接口)
    UIContainerView纯代码实现及原理介绍
    CocoaPods 详解之----更新篇
    使用Cocoapods创建私有podspec
    ios高效开发-正确的使用枚举(Enum)
    在Xcode6中搭建Python开发环境
    用Swift语言做App开发之单元测试
  • 原文地址:https://www.cnblogs.com/David-Huang/p/3856448.html
Copyright © 2011-2022 走看看