[问题] 如何让物件无法被更改?

楼主: 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