基础知识---const、readonly、static】的更多相关文章

const:静态常量,也称编译时常量(compile-time constants),属于类型级,通过类名直接访问,被所有对象共享! a.叫编译时常量的原因是它编译时会将其替换为所对应的值: b.静态常量在速度上会稍稍快一些,但是灵活性却比动态常量差一些: c.静态常量,隐式是静态的,即被static隐式修饰过,不能再用static重复修饰, d.在声明时初始化: e.静态常量只能被声明为简单的数据类型(内建的int和浮点型).枚举或字符串. f.应用场合例如:Math.PI的定义(要声明一些从…
如果有一个值不太会变化,我们经常使用const和readonly,这2者有何不同呢?有时候,我们也会在readonly之前加上关键字static,这又意味着什么呢? const ● const默认是静态的,可以通过"类名.字段名"来访问.● const变量只能在声明的时候赋值,不能在构造函数中为const类型变量赋值.● 一旦程序集被编译,const变量会被写进程序集的IL代码中.如果想修改const变量值,必须在修改值后再重新生成程序集.● const是编译期变量 public cl…
static 关键字,我们在开发用的还是比较多的.在<Java编程思想>有下面一段话 static 方法就是没有 this 的方法.在 static 方法内部不能调用非静态方法,反过来是可以的.而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用 static 方法.这实际上正是 static 方法的主要用途. static 的用法比较广泛:静态变量.静态成员.静态函数等.我们在使用单列模式的时候,就会用到它.并且 static 数据成员存储在静态存储区,只存储一次,可以节省内存. sta…
static 修饰符能够与变量.方法一起使用,表示是“静态”的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态变量与实例变量不同,实例变量总是通过对象来访问,因为它们的值在对象和对象之间有所不同. 请看下面的例子: public final class Demo { static int i = 10; int j; Demo() { this.j = 20; } public static void ma…
C#基础知识记录一 static void Main(string[] args) { #region 合并运算符的使用(合并运算符??) 更多运算符请参考:https://msdn.microsoft.com/zh-cn/library/ms173224(v=vs.100).aspx int? x = null; //合并运算符的写法 int? y = x ?? 0; //三元运算符的写法: y = x == null ? 0 : x; Console.WriteLine(y); #endre…
真的一样? const 和 static readonly 常在程序中用来声明常量,调用方法也没有什么不同,他们真的一样吗?我们可以做个试验. 程序集内的常量 现在我们建立一个程序,里面有一个MyClass的类,分别用const和static readonly定义常量 然后在程序运行时输出 运行程序,输出 把这两个值改一下,再运行 看来没什么问题 跨程序集的常量 现在我们建新建一个类库,创建一个类,同样的内容 在程序中加入对类库的引用,并把这两个常量输出 正常输出 改变这两个值 我们现在Rebu…
我们都知道,const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等.在多数情况下可以混用.二者本质的区别在于,const的值是在编译期间确定的,因此只能在声明时通过常量表达式指定其值.而static readonly是在运行时计算出其值的,所以还可以通过静态构造函数来赋值.明白了这个本质区别,我们就不难看出下面的语句中static readonly和const能否互换了: 1. static readonly MyClass myins = new M…
const int a must be initialized initialization must be at compile time readonly int a can use default value, without initializing initialization can be at run time 二者本质的区别在于,const的值是在编译期间确定的,因此只能在声明时通过常量表达式指定其值.而static readonly是在运行时计算出其值的,所以还可以通过静态构造…
1. const与readonly const ,其修饰的字段只能在自身声明时初始化. Readonly 是只读变量,属于运行时变量,可以在类初始化的时候改变它的值.该类型的字段,可以在声明或构造函数中初始化. 因此,根据所使用的构造函数,readonly 字段可能具有不同的值. const只能在初期就使用常量初始化好.对于每一次编译后的结果,const的值是固定的,而readonly的值是可以在运行的时候才确定值的. 2. const 与 static static 定义的是静态变量.可以在外…
到底是 const 还是 static readonly   真的一样? const 和 static readonly 常在程序中用来声明常量,调用方法也没有什么不同,他们真的一样吗?我们可以做个试验. 程序集内的常量 现在我们建立一个程序,里面有一个MyClass的类,分别用const和static readonly定义常量 然后在程序运行时输出 运行程序,输出 把这两个值改一下,再运行 看来没什么问题 跨程序集的常量 现在我们建新建一个类库,创建一个类,同样的内容 在程序中加入对类库的引用…