Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Статические свойства
Статические свойства
В C# также поддерживаются статические свойства. Вспомните из главы 3, что статические члены доступны на уровне класса, а не экземпляра (объекта) этого класса. Например, предположим, что тип Employee определяет элемент статических данных, представляющий название организации, в которой трудоустроен работник. Можно определить статическое свойство (например, уровня класса) так, как показано ниже.
// Статические свойства должны оперировать со статическими данными!
public class Employee {
private static string companyName;
public static String Company {
get { return companyName; }
set { companyName = value; }
}
…
}
Статические свойства используются точно так же, как статические методы.
// Установка и чтение названия компании,
// в которой трудоустроены эти работники…
public static int Main(string[] args) {
Employee.Company = "Intertech training";
Console.WriteLine("Эти люди, работают в {0} ", Employee.Company);
…
}
Также вспомните из главы 3, что в C# поддерживаются статические конструкторы. Поэтому, если вы хотите, чтобы статическое свойство companyName всегда устанавливалось равным Intertech Training, можете добавить в класс Employee член следующего вида.
// Статический конструктор без модификаторов доступа и аргументов.
public class Employee {
…
static Employee() {
companyName = "Intertech Training";
}
}
В данном случае мы ничего не выиграли в результате добавления статического конструктора, если учесть, что тот же результат можно было бы достичь с помощью простого присваивания значения члену-переменной companyName, как показано ниже.
// Статические свойства должны оперировать со статическими данными!
public class Employee {
private static string companyName = "Intertech Training";
}
Однако следует вспомнить о том. что статические конструкторы оказываются очень полезными тогда, когда значения для статических данных становятся известны только в среде выполнения (например, при чтении из базы данных).
В завершение нашего обзора возможностей инкапсуляции следует подчеркнуть, что свойства используются с той же целью, что и классическая пара методов чтения/модификации данных. Преимущество свойств заключается в том, что пользователи объекта получают возможность изменять внутренние данные, используя для этого один именованный элемент.
- Статические члены
- 11.2. СВОЙСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- 7.15. Статические методы
- 4. Свойства унарных операций
- 3. Свойства бинарных операций
- Статические классы
- Ключевые свойства форм
- 1.1.5. Свойства и особенности туруслуг и турпродуктов
- Свойства меню Пуск
- Работа с дополнительными свойствами файлов
- Глава 5. Товар и товарная категория. Характеристики и свойства
- Свойства StdErr, StdIn, StdOut