黑马程序员-Readonly和Const的区别

 

Const:

  常量:在常量初始化声明的时候必须赋值。且不改变。永远不改变。不管多久都不能改变的常量就和圆周率Pi似的.值不能被改变。 

 



 1 public class Test 
 2 {
 3     class SampleClass 
 4     {
 5         public int x;
 6         public int y;
 7         public const int c1 = 5;
 8         public const int c2 = c1 + 5;
 9 
10         public SampleClass(int p1, int p2) 
11         {
12             x = p1; 
13             y = p2;
14         }
15     }
16 
17     static void Main() 
18     {
19         SampleClass mC = new SampleClass(11, 22);   
20         Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y);
21         Console.WriteLine("c1 = {0}, c2 = {1}", 
22                           SampleClass.c1, SampleClass.c2 );
23     }
24 }
   定义之后,只能使用,不能更改

ReadOnly:

 

      可以在字段上使用的修饰符。 当字段声明包括 readonly 修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者出现在同一类的构造函数中。

class Test
{
    readonly int _age_year;
    Test(int age_year}
    {
          _age_year=age_year;
     }      
    public void Test1()
     {
          _age_year =2013;//Error  
     }
}

 

      readonly 关键字与 const 关键字不同。

      const                                                                              readonly

         字段只能在该字段的声明中初始化。                                       字段可以在声明或构造函数中初始化。

 

       const 字段为编译时常数,而 readonly 字段可用于运行时常数  根据所使用的构造函数,readonly 字段可能具有不同的值。    

 

 

  

posted @ 2013-04-01 15:08  AlianBlank  阅读(100)  评论(0编辑  收藏  举报