您的位置:首页 > 运维架构

Readonly and Mutable, vs. Read / Write Properties

2005-11-20 18:13 423 查看
刚刚逛Bill Wanger的blog看到了一篇帖子,虽然感觉没什么新意,不过既然他老人家郑重其事地提出来了,估计有他的用意,自己写了个程序验证了一下,贴在下面,由于他老人家用的是C#2.0(用到了范型),俺机子没有装,只能把它翻译成C#1.1的版本了.

class ClassPrint

class ClassWords
private ArrayList words = new ArrayList();
public ArrayList _pWords
private ArrayList words = new ArrayList();
public ArrayList _pWords
{
get
{
return words;
}
set
{
words = value;
}
}
却可以让它指向另一个ArrayList,这样如果一个客户端代码已经缓存了这个属性原始数据的引用,如果用set方法让它指向新的ArrayList就会显得很突然和奇怪.
我觉得这其实是很正常和比较好理解的,如果类在设计的时候不允许它再指向新的ArrayList(当然这里的Mutable,可以指任何引用类型的数据,比如DataSet等等),那就把这个字段设计为只读,如果所有的实例只允许一份值拷贝,干脆用Sington Pattern.
Bill Wanger写的<<Effective C#>>和<<The C# Core Language Little Black Book>>据说很经典,等看完Anders就可以看这两本了,爽.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: