当前位置:乐求学 >

好好学习 >考研 >

笔试题(const 和 static readonly)

笔试题(const 和 static readonly)

const 和 static readonly 区别?

笔试题(const 和 static readonly)

答:const
用 const 修饰符声明的成员叫常量,是在编译期初始化并嵌入到客户端程序

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

示例:

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

修改后的示例:

测试类:

using System;using ric;using ; 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

  • 文章版权属于文章作者所有,转载请注明 https://m.leqiuxue.com/kywx/m828pr.html