高质量代码之常量

本文借鉴《编写高质量的C#代码:改善C#程序的157个建议》,算是对自己学习的总结,也希望分享下所学知识~~

常量分为两种:constreadonly

1.const:
const 是一个编译器常量,且只能修饰基元类型、枚举类型或者字符串类型。
如果使用 const 原因只有一个:效率!因为经过编译器编译后,代码中引用 const 变量的地方会用 const 变量的值来代替:

const int CONST_VALUE = 100;
Debug.Log( CONST_VALUE  );
//会编译成 =>>
Debug.Log( 100  );

2.readonly:
readonly 是一个运行时常量,修饰类型没有限制。
readonly 赋值行为发生在运行时。它在运行时第一次被赋值后将不可以改变(类似指针常量),如果是值类型,值本身不可改变;如果是引用类型,引用不可改变。

class Test
{
      static readonly int Value = 100;
      public Test(int value)
      {
            Value = value;
      }
}
//for test
Test test = new Test(200);

ps:readonly 变量在构造函数内可以被赋值。

你可能感兴趣的:(高质量代码之常量)