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

  • 相关阅读:
    LINUX VNC配置[转]
    win7下,两台笔记本内置的无线局域网卡共享上网
    修改Linux和aix系统为北京时区
    ubuntu 9.10 下安装ORACLE 出错SP20750: You may need to set ORACLE_HOME to your Oracle software directory
    安装vim7.1
    select 语句的处理顺序
    批量从数据库是提取数据,并显示出来。
    输入四个字符串然后按大到后输出。
    shell 批量修改指定的文件。
    unix自动登录Telnet,实现查看多台服务器硬盘及数据表空间使用情况
  • 原文地址:https://www.cnblogs.com/qfb620/p/1771555.html
Copyright © 2011-2022 走看看