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;//正确

  • 相关阅读:
    Redis分布式锁解决抢购问题
    Linux查看进程,端口,服务路径等
    执行jar包,输出信息到文件
    查看linux服务器信息
    IDEA将项目打包为指定class文件的jar
    RSA加密-解密以及解决超长内容加密失败解决
    win10 Snipaste 截图软件
    线程池参数详解
    本地连接Linux工具
    python安装
  • 原文地址:https://www.cnblogs.com/JohnnyBao/p/4955983.html
Copyright © 2011-2022 走看看