您的位置:首页 > 其它

使用属性,避免将数据成员直接暴露给外界

2005-06-28 11:10 387 查看
在网上看到李建忠先生的Blog, 看到了这篇文章:
《Effective C#》 翻译笔记(1)使用属性,避免将数据成员直接暴露给外界

它讲了一条设计原则:Item 1 - Always Use Properties Instead of Accessible Data Members.
是对于这个问题做解答的:

为什么不直接放一个public字段?

class Card
{
public string Name;
}

而非要做一个private字段+public属性?
class Card
{
private string name;

public string Name
{
get { return this.name;}
set { this.name=value;}
}
}

讲了几条使用属性的理由:

1。可以对赋值做校验、或者额外的处理。
2。可以做线程同步。
3。可以使用虚属性、或者抽象属性。
4。可以将属性置于interface中
5。可以提供get-only或者set-only版本;甚至可以给读、写以不同的访问权限(C# 2.0支持)

关于第一条,明白!第五条,也用过,知道点。第2,3,4都没用过,Blog上面没有细讲,所以概念模模糊糊,有几个疑问:

1.线程同步怎么用?
2.虚属性,抽象属性有什么特别的用处吗?

更多的内容可以见:http://www.microsoft.com/china/msdn/library/langtool/vcsharp/EffectiveCsharp.mspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐