logo
CSharp_Prog_Guide

Реализация облегченного класса с автоматически реализуемыми свойствами

На этом примере показано, как можно создать облегченный класс, служащий исключительно для инкапсуляции совокупности автоматически реализуемых свойств. Если необходимо использовать семантику ссылочного типа, то следует применять вместо структуры конструкцию этого типа.

Пример

public class Contact

{

public string Name { get; set; }

public string Address { get; set; }

public int ContactNumber { get; set; }

public int ID { get; private set; } // readonly

}

Компилятор создает резервные поля для каждого автоматически реализуемого свойства. Поля, отвечающие этим свойствам, недоступны непосредственно из исходного кода.

Indexers

Indexers allow instances of a class or struct to be indexed just like arrays. Indexers resemble properties except that their accessors take parameters.

In the following example, a generic class is defined and provided with simple get and set accessor methods as a means of assigning and retrieving values. The Program class creates an instance of this class for storing strings.

class SampleCollection<T>

{

private T[] arr = new T[100];

public T this[int i]

{

get

{

return arr[i];

}

set

{

arr[i] = value;

}

}

}

// This class shows how client code uses the indexer

class Program

{

static void Main(string[] args)

{

SampleCollection<string> stringCollection = new SampleCollection<string>();

stringCollection[0] = "Hello, World";

System.Console.WriteLine(stringCollection[0]);

}

}

Indexers Overview