C# 常量

C# 常量
 
常量
  C#中定义常量的方式有两种,一种叫做静态常量,用const关键字修饰。另一种叫做动态常量,用readonly关键字修饰。
 
静态常量

  用const关键字修饰,写法如下:
1 public const int num = 10;
  常量一旦声明,其值不允许更改。就算可以更改常量的值,那么更改也没有任何的意义。因为在编译的时候,在使用常量的地方就已经被常量的值代替了,而更改常量的代码要在运行的时候才会生效。编译在前,运行在后。
  C#编译器在编译的时候,将声明常量的那句话省略掉了,并且在使用常量的地方,直接使用常量的值代替。因为在运行时没有与常量关联的变量地址,所以const字段不能通过引用传递。
      
 
动态常量

   用readonly关键字修饰,写法如下:
1 public readonly string name = "Jack";

  只读字段是属于对象的成员,所以在创建对象的时候,仍然会创建只读字段。

  只读字段的值一旦声明就无法改变。除了在我们的构造函数中。

  readonly只能修饰字段,不能修饰局部变量。

 
关于静态常量的几个小细节
  • 声明静态常量的同时必须为常量赋值
  • 为静态常量赋值不能有变量参与,因为常量的值要求在编译的时候就能确定,而变量的值要在运行的时候才可以确定。
  • 常量可以是局部变量,也可以是成员变量。 当常量是成员变量的时候,通过类名直接点出来访问。
  • 类 类型的变量是可以为const的。但是该变量的值只能是null而不能给它new1个对象。因为常量的值要求在编译的时候确定,如果new的话要在运行起来才能new。
 
PS:常量是不属于对象的。在创建对象的时候,对象里是不会有常量的。所以常量不能通过对象名点出来访问。只能通过类名点出来访问。
posted @ 2015-08-08 17:42  Chen_Weifeng  阅读(305)  评论(0编辑  收藏  举报