您的位置:首页 > 编程语言 > C#

c#自动属性

2012-09-09 20:06 113 查看
例如下面
class myClass{
//一般属性用法
privae string name;

public string Name{
get { return name;}

set { name = value;}

}

//自动属性

public string Name{

get;
set;

}
}


C#中用get和set对类的属性进行访问和设置,保障类中数据的安全。自动属性是不对字段进行逻辑验证的操作.由于自动属性可以省略后背字段,结果我很多时候都会忍不住用自动属性,而且代码也比带后备字段的属性来的明了。这样子写,这两种方法没任何区别.

那么什么情况下用一般写法 什么情况下用自动写法?

你需要对这个变量做一些限制的时候 比如:


String username;
你想限制这个用户名只能有10个字符长度
public String UserName
{
get{return username;}
set{if(value.Length<=10){username=value;}}
}


简单的不需要限制的直接存取的就省力点用自动属性,而需要做出限制的就加个后背字段重新实现一次属性.
另外:使用get/set,最主要的是基于oop思想编程,使得“属性和行为分离”。通过get/set可以设置某属性只读,也可以控制到某一层可读/可写,也可以通过设置条件使数据合法等。


class A
{
private int_x;
public int x
{
get{return _x;}
protected set
{
if(value>=0)
{
_x=value;
}
}
}
}


其实,上述例子不使用get/set也同样可以做到,不过get/set使用起来更方便,清晰。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐