属性(C# 与 Java)

更新:2007 年 11 月

在 C# 中,属性是类、结构或接口的命名成员,它提供了一种通过getset 访问器方法访问私有字段的巧妙方法。

下面的代码示例为 Animal 类声明 Species 属性,该属性将对私有变量 name 的访问抽象化:

public class Animal
{
    private string name;

    public string Species
    {
        get
        {
            return name;
        }
        set
        {
            name = value;
        }
    }
}

通常,属性的名称与它所访问的内部成员的名称相同,但是第一个字母要大写,如以上示例中的 Name,否则内部成员将带一个 _ 前缀。此外,请注意 set 访问器中所使用的隐式参数 value;该参数具有基础成员变量的类型。

实际上,访问器在内部表示为 get_X() 和 set_X() 方法,以保持与基于 .NET Framework 的语言(它们不支持访问器)的兼容性。定义属性后,可以非常容易地获取或设置其值:

class TestAnimal
{
    static void Main()
    {
        Animal animal = new Animal();
        animal.Species = "Lion";                   // set accessor
        System.Console.WriteLine(animal.Species);  // get accessor

    }
}

如果一个属性仅有 get 访问器,则它为只读属性。如果它仅有 set 访问器,则为只写属性。如果它同时具有这两种访问器,则为读写属性。

请参见

概念

C# 编程指南

参考

属性(C# 编程指南)

其他资源

C# 编程语言(针对 Java 开发人员)