[对象和类型]11.readonly 和 const区别

Posted on 2009-09-26 12:47  Relax Active  阅读(188)  评论(0)    收藏  举报

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

const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改。

readonly 关键字与 const 关键字不同。const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。另外,const 字段为编译时常数,而 readonly 字段可用于运行时常数,如下例所示:

C# 复制代码

public class ReadOnlyTest

{

   class SampleClass

   {

      public int x;

      // Initialize a readonly field

      public readonly int y = 25;

      public readonly int z;

 

      public SampleClass()

      {

         // Initialize a readonly instance field

         z = 24;

      }

 

      public SampleClass(int p1, int p2, int p3)

      {

         x = p1;

         y = p2;

         z = p3;

      }

   }

 

   static void Main()

   {

      SampleClass p1 = new SampleClass(11, 21, 32);   // OK

      Console.WriteLine("p1: x={0}, y={1}, z={2}", p1.x, p1.y, p1.z);

      SampleClass p2 = new SampleClass();

      p2.x = 55;   // OK

      Console.WriteLine("p2: x={0}, y={1}, z={2}", p2.x, p2.y, p2.z);

   }

}


博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3