本文借鉴《编写高质量的C#代码:改善C#程序的157个建议》,算是对自己学习的总结,也希望分享下所学知识~~
常量分为两种:const
和 readonly
。
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 变量在构造函数内可以被赋值。