get、set、value
get :在属性或索引器中定义“访问器”方法,以检索该属性或该索引器元素的值。
set :在属性或索引器中的“访问器”方法,用于设置属性或索引器元素的值。
value: 隐式参数,用于设置访问器以及添加或移除事件处理程序。
c#通过属性特性读取和写入字段,而不直接读取和写入,以此来提供对类中字段的保护.
只带有 get 访问器的属性称为只读属性。无法对只读属性赋值。
只带有 set 访问器的属性称为只写属性。只写属性除作为赋值的目标外,无法对其进行引用。
// 简单示例
class Employee
{
private string _name;
public string Name
{
get { return this._name; }
set { this._name = value; }
}
}
注意:
- get、set“访问器”,在默认情况下具有相同的访问级别。但是有时鉴于对读写的考虑,通常可以限制set的访问级别。对属性或索引器使用访问修饰符受以下条件的制约:
-
不能对接口或显式接口成员实现使用访问器修饰符。
-
仅当属性或索引器同时具有 set 和 get 访问器时,才能使用访问器修饰符。这种情况下,只允许对其中一个访问器使用修饰符。
-
如果属性或索引器具有 override 修饰符,则访问器修饰符必须与重写的访问器的访问器(如果有的话)匹配。
-
访问器的可访问性级别必须比属性或索引器本身的可访问性级别具有更严格的限制。
-
属性vs.函数
l 相似点
Ø 都包含执行代码
Ø 都可以有访问修饰符
Ø 都可以有virtual, abstract, override 修饰符
Ø 都可以用在接口中
l 不同点
Ø 属性只能拥有get/set 语句
Ø 属性不可以是void 型
Ø 属性不能使用参数
Ø 属性不能使用[ ] 参数
Ø 属性不能使用括号