zoukankan      html  css  js  c++  java
  • const 和 static readonly 区别

    const: 用const修饰符声明的成员叫常量,是在编译期初始化并嵌入到客户端程序 static readonly: 用static readonly修饰符声明的成员依然是变量,只不过具有和常量类似的使用方法:通过类进行访问、初始化后不可以修改。但与常量不同的是这种变量是在运行期初始化 。

    示例:

    测试类:

    Code
    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace Example02Lib
    {
    public class Class1
    {
    public const String strConst = "Const";
    public static readonly String strStaticReadonly = "StaticReadonly";
    //public const String strConst = "Const Changed";
    //public static readonly String strStaticReadonly = "StaticReadonly Changed";
    }
    }

    客户端代码:

    Code
    using System;
    using System.Collections.Generic;
    using System.Text;
    using Example02Lib;
    namespace Example02
    {
    class Program
    {
    static void Main(string[] args)
    {
    //修改Example02中Class1的strConst初始值后,只编译Example02Lib项目
    //然后到资源管理器里把新编译的Example02Lib.dll拷贝Example02.exe所在的目录,执行Example02.exe
    //切不可在IDE里直接调试运行因为这会重新编译整个解决方案!!
    //可以看到strConst的输出没有改变,而strStaticReadonly的输出已经改变
    //表明Const变量是在编译期初始化并嵌入到客户端程序,而StaticReadonly是在运行时初始化的
    Console.WriteLine("strConst : {0}", Class1.strConst);
    Console.WriteLine(
    "strStaticReadonly : {0}", Class1.strStaticReadonly);
    Console.ReadLine();
    }
    }
    }


    结果:
    strConst : Const
    strStaticReadonly : StaticReadonly

    修改后的示例:

    测试类:

    Code
    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace Example02Lib
    {
    public class Class1
    {
    //public const String strConst = "Const";
    //public static readonly String strStaticReadonly = "StaticReadonly";
    public const String strConst = "Const Changed";
    public static readonly String strStaticReadonly = "StaticReadonly Changed";
    }
    }

    结果

    strConst : Const
    strStaticReadonly : StaticReadonly Changed

  • 相关阅读:
    LR: GLU-Net: Global-Local Universal Network for Dense Flow and Correspondences
    LR Hybrid Bird's-Eye Edge Based Semantic Visual SLAM for AVP
    论文阅读 CalibNet
    记开发过程遇到的IE兼容性问题(持续更新)
    Please make sure you have the correct access rights and the repository exists(转发)
    createElement函数的语法及其简单使用
    typeof、instanceOf、hasOwnProperty的使用和区别
    nrm 的使用方法
    files文件上传传递给后台
    package.json指南及其常用命令
  • 原文地址:https://www.cnblogs.com/qfb620/p/1771555.html
Copyright © 2011-2022 走看看