美文网首页
c# constant 和 static readonly的区别

c# constant 和 static readonly的区别

作者: holysu | 来源:发表于2017-09-05 11:55 被阅读0次
    修饰符 可修饰的变量 初始化位置 不变性 生命周期
    constant 基本类型 声明的时候初始化 编译时常量 编译器存入变量metadata中,使用时不需要加载到ram
    static readonly 不限 声明+构造器 运行时常量,仅仅是变量持有的引用不可变,不限制引用类型成员的修改 初次构造后确定

    注意点:
    由于contant变量的值在编译期间就已经将其存入metadata中, 程序中使用常量其实已经直接将其替换成常量值了(可以通过 IL 查看),所以在 webapp -> library 这样引用关系的应用中,如果要修改存在于library中的常量,单单重新编译发布 library 是不会对 webapp 起作用的, 需要重发 webapp。

    相关文章

      网友评论

          本文标题:c# constant 和 static readonly的区别

          本文链接:https://www.haomeiwen.com/subject/vpjujxtx.html