logo
CSharp_Prog_Guide

Объявление и использование свойств чтения и записи

Свойства обеспечивают удобную работу с открытыми членами данных без риска, с которым связан незащищенный, неконтролируемый и непроверяемый доступ к данным объекта. Это достигается с помощью методов доступа: особых методов, которые назначают и извлекают значения из базового члена данных. Метод доступа set обеспечивает назначение членов данных, а метод get извлекает значения членов данных.

В этом примере показан простой класс Person, имеющий два свойства: Name(string) и Age (int). Оба свойства предоставляют методы доступа get и set, поэтому они считаются свойствами чтения и записи.

Пример

-------

class TestPerson

{

static void Main()

{

// Create a new Person object:

Person person = new Person();

// Print out the name and the age associated with the person:

System.Console.WriteLine("Person details - {0}", person);

// Set some values on the person object:

person.Name = "Joe";

person.Age = 99;

System.Console.WriteLine("Person details - {0}", person);

// Increment the Age property:

person.Age += 1;

System.Console.WriteLine("Person details - {0}", person);

}

}

Person details - Name = N/A, Age = 0

Person details - Name = Joe, Age = 99

Person details - Name = Joe, Age = 100

Robust Programming

In the previous example, the Name and Age properties are public and include both a get and a set accessor. This allows any object to read and write these properties. It is sometimes desirable, however, to exclude one of the accessors. Omitting the set accessor, for example, makes the property read-only:

public string Name

{

get

{

return m_name;

}

}

------