关闭

C#语法——const vs readonly

标签: c#readonlyconst
186人阅读 评论(0) 收藏 举报
分类:

const和readonly的比较,是困扰我很久的一个问题,正好有空就专门抽空看了看(真的打算细看的时候才发现这么简单),也正好试用下Markdown的语法,谁成想写着写着就成了MSDN的翻译文章(甚至都不算是翻译,只是整理),自罚一杯…

来自MSDN的比较

MSDN的解释
1. 都是C#中的关键字(访问修饰符);
2. 被const修饰的字段,必须在初始化的时候赋值;(编译时变现出的常量状态)
3. 被readonly修饰的字段,即可以在初始化的时候赋值,也可以在声明字段的类的构造函数中赋值;(运行时表现出的常量状态)

来自MSDN的示例

1.const示例

public class ConstTest 
{
    class SampleClass 
    {
        public int x;
        public int y;
        public const int c1 = 5;
        public const int c2 = c1 + 5;

        public SampleClass(int p1, int p2) 
        {
            x = p1; 
            y = p2;
        }
    }

    static void Main() 
    {
        SampleClass mC = new SampleClass(11, 22);   
        Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y);
        Console.WriteLine("c1 = {0}, c2 = {1}", 
                          SampleClass.c1, SampleClass.c2 );
    }
}
/* Output
    x = 11, y = 22
    c1 = 5, c2 = 10
 */

2.readonly示例

public class ReadOnlyTest
{
   class SampleClass
   {
      public int x;
      // Initialize a readonly field
      public readonly int y = 25;
      public readonly int z;

      public SampleClass()
      {
         // Initialize a readonly instance field
         z = 24;
      }

      public SampleClass(int p1, int p2, int p3)
      {
         x = p1;
         y = p2;
         z = p3;
      }
   }

   static void Main()
   {
      SampleClass p1 = new SampleClass(11, 21, 32);   // OK
      Console.WriteLine("p1: x={0}, y={1}, z={2}", p1.x, p1.y, p1.z);
      SampleClass p2 = new SampleClass();
      p2.x = 55;   // OK
      Console.WriteLine("p2: x={0}, y={1}, z={2}", p2.x, p2.y, p2.z);
   }
}
/*
 Output:
    p1: x=11, y=21, z=32
    p2: x=55, y=25, z=24
*/

本博文参考

来自MSDN的解释
其它博文

1
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:98475次
    • 积分:1707
    • 等级:
    • 排名:千里之外
    • 原创:75篇
    • 转载:7篇
    • 译文:1篇
    • 评论:5条
    最新评论