比較const ,readonly, stitac readonly

比較const ,readonly, stitac readonly:app

  1. constreadonly的值一旦初始化則都再也不能夠改寫;
  2. const必須在聲明時初始化;readonly既能夠在聲明時初始化也能夠在構造器中初始化,由於見4;
  3. const隱含static,不能夠再寫static constreadonly則不默認static,如須要能夠寫static readonly
  4. const是編譯期靜態解析的常量(所以其表達式必須在編譯時就能夠求值); readonly則是運行期動態解析的常量, static readonly字面就是實例時賦值
  5. const既可用來修飾類中的成員,也可修飾函數體內的局部變量;readonly只能夠用於修飾類中的成員。
  6. const訪問必須以"Classname.VariableName"方式訪問,而readonly訪問必須以"InstanceName.VariableName"方式訪問。

代碼說明問題函數

  const關鍵字post

class ConstantEx
    {
        public const int number =3;
    }

    class Program
    {
        static void Main(string[] args)
        {
            //若是這裏使用 ConstantEx.number=10 會出錯,在整個app內該值不可改變
            Console.WriteLine(ConstantEx.number);// 類名+常量訪問
            Console.ReadLine();
        }
    }

  readonly關鍵字spa

class ReadOnlyEx
    {
       //說明該值能夠在運行時改變,即在實例化時改變該值
        public readonly int number = 10;
        public ReadOnlyEx()
        {
            number =20;
        }
        public ReadOnlyEx(bool IsDifferentInstance)
        {
            number = 100;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            //必須實例化後訪問
            ReadOnlyEx readOnlyInstance = new ReadOnlyEx();
            Console.WriteLine(readOnlyInstance.number);

            ReadOnlyEx differentInstance = new ReadOnlyEx(true);
            Console.WriteLine(differentInstance.number);

            Console.ReadLine();
        }
    }
相關文章
相關標籤/搜索