属性(property)的概念是:它是一个方法或一对方法,在客户端代码看来,它(们)是一个字段。
//C#中定义属性
public string SomeProperty
{
get{
return "This is the property value.";
}
set{}
}
get访问器不带任何参数,且必须返回属性声明的类型。也不应为set访问器指定任何显示参数,单宾衣旗假定它带一个参数,其类型也与属性相同,并表示为value。
//age表示属性Age的后备变量
private int age;
public int Age
{
get{
return age;
}
set{
age=value;
}
}
<只读和只写属性>
在属性定义中省略set访问器,就可以创建只读属性。
private string name;
public string Name
{
get
{
return Name;
}
}
<属性的访问修饰符>
C#允许给属性的get和set访问器设置不同的访问修饰符,所以属性可以有公有的get访问器和私有或受保护的set访问器。这有助于控制属性的设置方式或时间。
public string Name
{
get{
return _name;
}
private set
{
_name = value;
}
}
<自动实现的属性>
如果属性的set和get访问器中没有任何逻辑,就可以使用自动实现的属性。这种属性会自动实现后备成员变量。
public int Age{get;set}
public int Age{get;}
public int Age{get; private set;}