Tho*_*que 12 .net immutability
我正在寻找一个内置属性来指定一个类型是不可变的,我只找到了 System.ComponentModel.ImmutableObjectAttribute.
使用Reflector,我检查了它的使用位置,似乎唯一使用它的公共类是System.Drawing.Image ... WTF?它可以用在string,int或任何基本类型上,但Image绝对不是不可变的,有很多方法可以改变它的内部状态(例如使用Graphics或Bitmap.SetPixel方法).
所以BCL中唯一明确声明为不可变的类是可变的!或者我错过了什么?
Dar*_*rov 10
文件说明:
此属性通常在"属性"窗口中用于确定是否将可扩展对象呈现为只读.因此,此属性仅在设计时使用.
Reflector显示使用此属性的唯一方法是System.Windows.Forms.PropertyGridInternal.GridEntry.Flags设计属性网格使用的内部属性getter.
我认为您有ImmutableObjectAttribute混淆的用法-这意味着对象的属性不应在表单设计器或类似的设计时UI中进行编辑,而不是对象本身是不可变的。
此属性可能是每日WTF的候选者,但是...
| 归档时间: |
|
| 查看次数: |
1630 次 |
| 最近记录: |