Upload
zhaslan-doschanov
View
907
Download
2
Embed Size (px)
Citation preview
СТАТИЧЕСКИЕ КЛАССЫ И
СТАТИЧЕСКИЕ ЧЛЕНЫ КЛАССА
C# 4.0
Понятие ключевого слова static
Класс С# может определять любое количество статических членов с использованием ключевого слова static. При этом соответствующий член должен вызыватьсянепосредственно на уровне класса, а не на объектной ссылке.
Пример
// Ошибка! WriteLine() не является методом уровня объекта1 Console с = new Console (); с.WriteLine("...");
// Правильно! WriteLine() - статический метод. Console.WriteLine("Thanks...");
Определение статических методов
class Teenager { public static Random r = new Random(); public static int GetRandomNumber(short upperLimit) { return r.Next(upperLimit); } public static string Complain () { stnng[] messages = {"1", «2", "3", "4'", "5"}; return messages[GetRandomNumberE)]; } }
Статические члены могут оперировать только статическими данными и вызывать статические методы определяющего их класса. Попытка использования нестатических данных класса или вызова нестатического метода класса внутри реализации статического члена приводит к ошибке времени компиляции.
Определение статических полей данных
class SavingsAccount { public static double currlnterestRate = 0.04; }
Определение статических полей данных
currInterestRate=0.04
SavingsAccount1
SavingsAccount2
SavingsAccount3
Определение статических конструкторов
//неверно, значение сбрасыветсяpublic SavingsAccount(double balance) { currlnterestRate = 0.04; currBalance = balance; }
Определение статических конструкторов
//Нет возможности поменять статические данныеclass SavingsAccount { public double currBalance; // Статические данные. public static double currlnterestRate = 0.04; }
Определение статических конструкторов
static SavingsAccount () { currlnterestRate = 0.04; }
Определение статических конструкторов
• В отдельном классе может быть определен только один статический конструктор. Другими словами, статический конструктор нельзя перегружать. • Статический конструктор не имеет модификатора доступа и не может принимать параметров. • Статический конструктор выполняется только один раз, независимо от того, сколько объектов отдельного класса создается. • Исполняющая система вызывает статический конструктор, когда создает экземпляр класса или перед первым обращением к статическому члену этого класса. • Статический конструктор выполняется перед любым конструктором уровня экземпляра.
Определение статических классов
Основные характеристики статического класса:
• Содержит только статические члены.• Создавать его экземпляры нельзя.• Он закрыт.• Не может содержать нестатических конструкторов