zoukankan      html  css  js  c++  java
  • C#基础readonly 与const

    readonly 与 const
    readonly是运行时常量,const是编译期常量(在编译过程中已经把使用该值的都用值替代,不分配内存)readonly灵活性高,const效率高
    readonly 可以修饰任何类型的常量,包括自定义类,const则只能修饰基元类型,枚举类型及字符串(const MyClass myClass 则错误写法)
    用const修饰的则不能加static 修饰,编译期本来就是静态常量

    readonly 可以在构造函数内对其多次赋值

    public class Mouse
    {
    public readonly int ReadOnlyValue = 100;
    public Mouse(int readonlyvalue)
    {
    ReadOnlyValue = readonlyvalue;//是正确的写法,可以多次赋值
    }
    }

    Mouse mouse = new Mouse(300);//正确
    mouse.ReadOnlyValue = 400;//错误

    public class Mouse
    {
    public readonly Cat ReadOnlyValue = new Cat() { catValue = 100 };
    public Mouse(Cat cat)
    {
    ReadOnlyValue = cat;
    }
    }
    readonly对引用类型修饰的话,是不能再指向其他的实例,但可以对指向的引用实例值时可以改变的
    Mouse mouse = new Mouse(new Cat() { catValue = 300 });
    mouse.ReadOnlyValue.catValue = 400;//正确
    mouse.ReadOnlyValue = new Cat() { catValue = 500 };//错误

    Cat cat = new Cat() { catValue = 500 };
    mouse.ReadOnlyValue.catValue = cat.catValue;//正确

  • 相关阅读:
    团队冲刺第一天
    leetcode整理
    eclipse 中JSP环境搭建
    java期末小结
    桌面宠物online------------------面对对象程序综合设计2020年
    java
    4.3 jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company (20分)
    选择
    算法---分支限定0/1背包--蚁群算法
    博客园特效
  • 原文地址:https://www.cnblogs.com/JohnnyBao/p/4955983.html
Copyright © 2011-2022 走看看