1:类似于这样的代码:
public class Car
{
private string name;
public string Name
{
get{return name;}
set{name=value;}
}
...
}
要用自动属性:
public class Car
{
public string Name{get;set}
...
}
在这儿使用Property,而不是仅仅使用public 成员变量的好处在于:
(1):维持了封装原则,不暴露公共变量给外界的习惯;
(2):便于以后可能会有在里面进行控制逻辑的添加。或者以后可以便于将get , set 中的某一个读或写的方向关闭;
(3):在使用元数据时,编译器只认属性不认成员变量。举例,ParseChildren(true, "MemberName") (这点我是网上看来的,其实我没看懂是什么意思。。。暂时先列在这儿);
(4):在绑定数据的时候,属性有特殊的用处(这个我也没怎么理解。。。)。
2: 自动属性无法指定默认值,如果要达到这种效果,只能在构造函数中对其进行初始化!
另外,如果要指定自动属性,必须同时指定 get;set; 缺一不可。会编译通不过。
public string Name {get;set;} 这样才行,
public string Name { get; } 或 public string Name { set; } 都不行!
那如果想自动属性,且外界只读或者只写怎么办呢?
要这样写:
public string Name { get; private set; }
public string Name { private get; set; }