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

  • 相关阅读:
    sublime插件时间
    git与github
    字符编码笔记:ASCII,Unicode和UTF-8
    阮一峰:互联网协议入门
    从理论到实践,全方位认识DNS
    ci事务
    linux下启动oracle
    Java连接Oracle
    我的博客终于开通了,加油!
    FILTER 执行次数
  • 原文地址:https://www.cnblogs.com/qfb620/p/1771555.html
Copyright © 2011-2022 走看看