您的位置:首页 > 其它

深入了解隐式属性和带实现值属性的区别(属性中get{},set{}访问器小解)

2013-05-22 17:53 330 查看
//在属性中定义
public string name{get;set;}//隐式属性

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


两者都是为了数据安全,封装字段用的。
正常来说,两者的使用是相同的,前一种的写法由编译器生成后一种的代码;
public string name{get;set;}这种写法是dotNet2.0以后才可以这样写,目的是减轻程序员的工作量,它的实现就是楼上讲的由编译器生成
当然如果简单get没写实现,set写了实现是不行的,但在前面加上抽象关键字abstract,对应的没写实现的就与抽象方法一样;

get和set还可以再加上public等访问级别。

区别是:
如果你要对属性做一些判断,如字符串不能为空,整数必须大于零等等这样的操作,那么你就没办法利用

public string name{get;set;}


这样的便利,必须老老实实写形如

public string Name
{
    get { return name; }
    set { name= value; }
}
这样的代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐