本帖最后由 小天 于 2013-7-31 22:33 编辑
我总结了属性的几种情况
第1种情况:声明一个属性
class Person
{
private int age;
public int Age //Age不存储值,而是对age进行赋值和取值
{
set //赋值
{
if (value < 0)//属性和字段的区别:属性可以进行非法值的判断
{
return;
}
this.age = value;//value是用户对属性赋值
}
get //取值
{
return this.age;
}
}
}
第2种情况:可以编译通过,而且不报错
class Person1
{
public int Age
{
set { }
get { return 10; }
}
}
第3种情况:易出错
class Person2
{
private int age;
public int Age
{
set { this.Age = value; }//易出错,死循环
get { return this.Age; }
}
}
第4种情况:声明了一个只读的属性,不能对属性赋值,但是可以读出属性
class Person3
{
private int age;
public int Age //声明了一个只读的属性
{
get { return age; }
}
public void IncAge()
{
age++;
}
}
第5中情况:编译器自动为我们生成了一个私有成员和set、get代码块
class Person4
{
public int Age
{
set;
get;
}
public string Name
{
set;
get;
}
}
|