Свойства (C# и Java)

Обновлен: Ноябрь 2007

В языке C# свойство – это именованный член класса, структура или интерфейс, предлагающий простой способ доступа к закрытым полям посредством так называемых методов доступа (get и set).

В следующем примере кода объявлено свойство с именем Species для класса Animal, которое предоставляет доступ к закрытой переменной с именем name:

public class Animal
{
    private string name;

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

Часто имя свойства будет совпадать с именем внутреннего члена, к которому оно обращается, но только начинаться оно будет с прописной буквы, как Name в описанном случае. К внутреннему члену может также прибавляться префикс “_”. Кроме того, следует обратить внимание на явный параметр с именем value, использованный в методе доступа set; он имеет тип переменной базового члена.

Фактически, методы доступа представлены внутренне в виде методов 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