C_Sharp 板


LINE

※ 引述《ji3g45j (pig)》之銘言: : ※ 引述《zanyking (遙遠的旅人)》之銘言: : : 都已經是Const了為啥還需要static?? : : 所謂的Const,就是用來修飾一些"常數"用的。 : : 既然是常數,就表示在整個執行期都不會有改變。 : Const是一個常數,編譯器能夠把它放在程式記憶體而不會佔到資料記憶體 : static是宣告一個變數,他是存於資料記憶體的,而且不會被釋放掉 先不去考慮MSIL或VM背後如何實作這個問題,單單只就語言邏輯層面去思考。 const關鍵字是用來表示一個變數是常數,一個常數代表著: 1.它在一個執行體(classLoader、AppDomain what else)當中為唯一的。 2.它的reference必須不可改變。 3.它的內容也不可改變。 Def-1 標示了與static一樣的性質。 def-2 標示了readonly、final(JAVA)的特性。 def-3 雖然看上去知道是什麼意思,背後卻隱藏了不少東西。 先從Def-2看起。 所謂的readonly指的並不是內容為readonly,而是reference為readonly, 也就是這個reference所指向的記憶體位址(邏輯上的)是不改變的,但他並 沒有保證這個位址所代表的物件其內容亦為不可變! 也就是說,你可以有一個static readonly的ArrayList,你可以任意Add or Remove你想要的東西,但你就是不能把reference指到其他地方。 而const,就是要保證Def-3這點。(如果你不作unsafe operation的話。) 所以,const可不可以用來形容動態資料結構呢?不行。 因為,『動態』與『常量』的語言觀念是互斥的。 事實上,就語意來說連fixed size陣列都是不容許的。 (實際可不可以沒測過,應該也是不行。) 所以,你會發現const只會用來描述string & 基本型態,(enum沒試過,語 意上應該可以。)而不會用來描述List、Dic、Set。 所以,下次有人問起『為何const不能形容陣列?』,可以這麼回答: 如果你需要一個不可變的陣列存放不可變的內容,那何不將它們一一列舉出 來宣告在class中,再利用static C# Indexer去作Array Like的存取呢? 物件可以像陣列,類別也可以。 -- JAVA 是一個靜態型別reference指定、強物件型別判定的語言。 屬於類C/C++族。 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.85.116.116







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP