[問題] 如何讓物件無法被更改?

作者: eye5002003 (下一夜)   2020-04-24 16:23:28
我知道C#有const這個關鍵字
但是像Bitmap這樣的物件就無法這麼用
如果我寫了一個函式如下
public Bitmap MakeFixedImage(){...}
我該如何禁止取得圖片的人去修改這張圖?
還是只能註解說這張圖有其他地方也在用
拜託別隨便修改
作者: sirius65482 (絕影)   2020-04-24 16:38:00
你是有個原始的Bitmap放進MakeFixedImage()改不想讓別人動到原始的那個Bitmap??
作者: kobe8112 (小B)   2020-04-24 16:58:00
你回傳一個複製的複本啊每次複製的複本都指向同一個參考呢?
作者: eye5002003 (下一夜)   2020-04-24 17:31:00
所謂參考就一定是同一塊記憶體啊
作者: james732 (好人超)   2020-04-24 17:54:00
內部資料設private並且只提供get相關但不提供set?另外不確定readonly這個關鍵字對你有沒有幫助
作者: kobe8112 (小B)   2020-04-24 18:34:00
我是指改成不回傳,僅賦值到同一個全域變數,嗯...本質還是一樣,不過GC後記憶體就會釋放了吧
作者: vi000246 (Vi)   2020-04-24 19:37:00
同j大 把圖片設成private 用一個公開的物件getter指向private物件
作者: eye5002003 (下一夜)   2020-04-26 10:10:00
看來也只能這樣了,感謝各位!

Links booklink

Contact Us: admin [ a t ] ucptt.com