static、readonly、const、#define

1、static 表示被修饰的对象的生命周期与当前的应用程序域相同,因此可以在多个实例中共享;

2、const:声明常量的一种方式,必须是在声明时就要初始化值,一旦设定就不能修改,是编译时常量。就时说你引用const字段,在编译时就可以替换成相应的常量值。如果要把只读字段设置为静态,就必须显示声明他;

3、readonly:声明常量的另一种方式在声明时可以初始化,同时在构造函数中也可以初始化。但是一旦构造函数运行完毕,其就不能再修改了,具有更大的灵活性,其值是在运行时确定的;

所以相比const来讲,readonly具有更大的灵活性,更多的情况下可以选择readonly来使用;

4、#define name value 是宏定义,是文本级的替换,没有类型安全(const和readonly都是类型安全的),在c#中可以用const来替换。

爱一个人好难,得到一个人好难!
原文地址:https://www.cnblogs.com/ForeverX/p/3416092.html