日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

const 和readonly

發布時間:2023/12/1 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 const 和readonly 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文:http://www.cnblogs.com/royenhome/archive/2010/05/22/1741592.html

關于 const和readonly修飾符之間的區別,要牽涉到C#中兩種不同的常量類型:

靜態常量(compile-time constants) 和動態常量(runtime constants)

靜態常量是指編譯器在編譯時候會對常量進行解析,并將常量的值替換成初始化的那個值

動態常量則是在運行的那一刻才獲得值,編譯器在編譯期間將它標示為只讀常量,而不用常量的值代替,這樣動態常量不必在聲明的時候就初始化,而可以延遲到構造函數中初始化.

1.const修飾的常量在聲明的時候必須初始化;readonly修飾的常量則可以延遲到構造函數初始化

2.const修飾的常量在編譯期間就被解析,即常量值被替換成初始化的值;readonly修飾的常量則延遲到運行的時候

此外const常量既可以聲明在類中 也可以在函數體內,但是 static readonly常量只能聲明在類中

public class Test {static readonly int A=B*10;static readonly int B=10;public static void Main(){Console.WriteLine("A is {0}, B is {1}",A,B);} }

上述 輸出的 結果是 A is 0 ,B is 10 ? 為啥A不是100? 因為在運行A=B*10 時 B 還是0

public class Test {const int A=B*10;const int B=10;public static void Main(){Console.WriteLine("A is {0}, B is {1}",A,B);} }

上述輸出的結果是 A is 100 , B is 10 ,因為 A 和 B 在編譯的時候 已經對值進行了解析

  

?

轉載于:https://www.cnblogs.com/xinianxinqix/p/5122753.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的const 和readonly的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。