3.4C#语言类成员之属性(Properties)

public    数据类型    属性名
{
    get
    {
        获取属性的语句块;
        return 值;
    }
    set
    {
        设置属性得到语句块;
    }
}
//简写
public    数据类型    属性名{get;set;}

1) get{}

get 访问器,用于获取属性的值,需要在 get 语句最后使用 return 关键字返回一个与属性数据类型相兼容的值。

若在属性定义中省略了该访问器,则不能在其他类中获取私有类型的字段值,因此也称为只写属性。

2) set{}

set 访问器用于设置字段的值,这里需要使用一个特殊的值 value,它就是给字段赋的值。

属性 是字段的自然扩展。 两者都是包含关联类型的已命名成员,用于访问字段和属性的语法也是一样的。 不过,与字段不同的是,属性不指明存储位置。 相反,属性包含访问器,用于指定在读取或写入属性值时执行的语句。

属性的声明方式与字段相似,区别是属性声明以在分隔符 { 和 } 之间写入的 get 访问器或 set 访问器结束,而不是以分号结束。 同时具有 get 访问器和 set 访问器的属性是“读写属性”。 只有 get 访问器的属性是“只读属性”。 只有 set 访问器的属性是“只写属性”。

get 访问器对应于包含属性类型的返回值的无参数方法。 set 访问器对应于包含一个名为 value 的参数但不含返回类型的方法。 get 访问器会计算属性的值。 set 访问器会为属性提供新值。 当属性是赋值的目标,或者是 ++ 或 -- 的操作数时,会调用 set 访问器。 在引用了属性的其他情况下,会调用 get 访问器。

MyList<T> 类声明以下两个属性:Count 和 Capacity(分别为只读和读写)。 以下示例代码展示了如何使用这些属性:

MyList<string> names = new MyList<string>();
names.Capacity = 100;   // Invokes set accessor
int i = names.Count;    // Invokes get accessor
int j = names.Capacity; // Invokes get accessor

类似于字段和方法,C# 支持实例属性和静态属性。 静态属性使用静态修饰符进行声明,而实例属性则不使用静态修饰符进行声明。

属性的访问器可以是虚的。 如果属性声明包含 virtualabstract 或 override 修饰符,则适用于属性的访问器。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/basic/csharp/4068.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注