Основы C#. Урок 22. Статические методы класса
На предыдущем уроке мы рассмотрели статические переменные класса. При этом наша переменная data была объявлена как public. Это не слишком хорошо - переменные класса лучше прятать от посторонних глаз. Но, так как доступ к нашей переменной нам все-таки нужен, то мы добавим в наш класс функции для чтения и записи переменной data. Вот новый вариант нашего класса:
class MyClass { //Статическая переменная static int data; //Статический метод для чтения переменной public static int GetData() { return data; } //Статический метод для записи переменной public static void SetData(int newData) { data=newData; } //Конструктор public MyClass() { data++; } } class Test { public static void Main() { MyClass a=new MyClass(); MyClass b=new MyClass(); //Вызов статического метода GetData System.Console.WriteLine(MyClass.GetData()); //Вызов статического метода SetData MyClass.SetData(5); System.Console.WriteLine(MyClass.GetData()); } }
Указанный фрагмент выведет, разумеется, 2 и 5.
Обратите внимание, что к статическим переменным и методам мы всегда получаем доступ через имя класса, а к нестатическим - через экземпляр класса. Но это не значит, что мы не имеем доступа к статическим переменным класса из нестатических методов класса - имеем, и даже у нас есть пример этому - конструктор нашего класса MyClass.