const和static readonly区别

2023-06-29   


答:const
   用 const 修饰符声明的成员叫常量,是在编译期初始化并嵌入到客户端程序
   static readonly
   用 static readonly 修饰符声明的成员依然是变量,只不过具有和常量类似的使用方法:通过类进行访问、初始化后不可以修改。但与常量不同的是这种变量是在运行期初始化
   示例:
   测试类:
   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”;
  
  
   客户端代码:
   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
   修改后的示例:
   测试类:
   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


相关内容:

  1. const char*, char const*, char*const的区别是什么
  2. static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
  3. 介绍下static、final、abstract区别
  4. static函数与普通函数有什么区别
  5. static全局变量与普通的全局变量有什么区别
  6. 华为程序面试笔试高级题