Статические свойства

C# также позволяет определять статические свойства, принадлежащие классу в целом, а не его отдельным экземплярам. Статические свойства, как и статические функции класса, не могут объявляться с модификаторами virtual, abstract и override.

При описании модификатора readonly (см. главу 8) был приведен пример инициализации статических переменных, доступных только для чтения. Инициализацию статических свойств также можно отложить до момента их фактического использования. Иногда значение свойства генерируется по запросу и не сохраняется на будущее. Если значение свойства создается с большими затратами и с большой вероятностью будет использовано снова, оно сохраняется в закрытой переменной. Если создание обходится дешево или значение свойства используется однократно, его можно создавать по мере необходимости.

class Color

{

public Color(int red, int green, int blue)

{

this.red = red;

this.green = green;

this.blue = blue;

}

int red;

int green;

int blue;

public static Color Red

{

get

{

return(new Color(255, 0, 0));

}

}

public static Color Green

{

get

{

return(new Color(0, 255, 0));

}

}

public static Color Blue

{

get

{

return(new Color(0, 0, 255));

}

}

}

class Test

{

static void Main()

{

Color background = Color.Red;

}

}

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

Предлагаю ознакомиться с аналогичными статьями: