Const 编译时常量

相关定义:
  Const 定义的是静态常在对象初始化的时候赋值.以后不能改变它的值.属于编译时常量。
  Static 定义的是静态变量.可以再外部改变它的值..
  Readonly 是只读变量.属于运行时变量.可以在类初始化的时候改变它的值..
 
简要解释:
  我们都知道,const和static readonly的确非常像:通过类名而不是对象名进行访问,在程式中只读等等。在多数情况下能混用。二者本质的差别在于,const的值是在编译期间确定的,因此只能在声明时通过常量表达式指定其值。而static readonly是在运行时计算出其值的,所以还能通过静态构造函数来赋值。
  最近发现我们的代码中由于使用了const常量后在编译的时候不注意导致了一些问题.一兄弟修改了常量值后只编译常量值所在的DLL,没有编译调用常量的DLL就部署到测试的服务器上去,结果只能是悲剧的测试不通过了。。。
  现在通过如下的一个例子加深对编译时常量的理解。
 
举例:
  一、我们把const定义在一个名为TD_SPI的Project里
public class constStringTestEntety
    {
        public const string constTest_Name = "第一次测试";

        private string mTest_Name = "第一次测试";
        public string Test_Name
        {
            get { return mTest_Name; }
        }
    }
  二、在TD_FormController的Project里面写了个From(constStringTest)调用常量并用MessageBox显示出来。
    MessageBox.Show(constStringTestEntety.constTest_Name);

    constStringTestEntety vEntity = new constStringTestEntety();
    MessageBox.Show(vEntity.Test_Name);
  三、在TD_Debug的Project里面初始化constStringTest并将这个From显示出来。
    constStringTest fm = new constStringTest();
    fm.ShowDialog();
 
  四、我们将三个DLL按顺序编译好后调用常量和普通属性的MessageBox显示出来提示信息都是 第一次测试
    
  五、我们修改常量值为 第二次测试并只编译TD_SPI复制到运行目录,调用普通属性的MessageBox显示出来的提示信息是 第二次测试调用常量的MessageBox显示出来的提示信息还是 第一次测试
  
  六、我们将TD_FormController编译复制到运行目录,两个MessageBox显示出来的提示信息都改变为 第二次测试
 
 
 
 
 

转载于:https://www.cnblogs.com/songmh/archive/2011/04/18/2019915.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随与博主沟通,博主会及解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随与博主沟通,博主会及解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随与博主沟通,博主会及解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随与博主沟通,博主会及解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随与博主沟通,博主会及解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随与博主沟通,博主会及解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随与博主沟通,博主会及解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随与博主沟通,博主会及解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值