000138. Детальнее о static
Детальнее о static||wmysterio|wmysterio|[email protected]|||Всем огромный привет! В этом уроке мы детальнее остановимся на таком понятии, как static, то есть статический(статичный и как его ещё там называют
). Если этот оператор используется для класса, то это значит, что он не может иметь конструктора, как было в прошлых уроках - следовательно он не может создавать объекты. Сам класс считает себя одним из объектов и применяет команды только к себе.
Хорошим примером статического класса можно назвать класс Console, который мы использовали в предыдущих уроках. Мы не можем создавать им объекты, но можем выполнять какие-то действия. Все поля класса, методы и свойства также должны быть статическими. В качестве примера создадим класс этого типа:

static class Autor {
private static string _name = "Н. Носов";
public static string GetName() {
return _name;
}
}
|
Вызов метода осуществляется следу ющим образом:
class Program {
static void Main() {
string _AutorName = Autor.GetName();
Console.WriteLine( _AutorName );
Console.ReadKey();
}
}
|
Результат:
Даже если мы напишем конструктор для статического класса, то вызвать его так

Autor Au = new Autor();
|
мы не сможем и получим ошибку "Невозможно создать экземпляр статического класса "Consol.Autor" " Это и есть отличие статического класса от обычного. Как-же тогда будет вести себя программа, если мы создадим статичный метод в обычном классе? Давайте проверим!
class Autor {
private static string _name = "Н. Носов";
private string _name2 = "М. Рид";
public Autor() {
}
public static string GetName() {
return _name;
}
public string GetName2() {
return _name2;
}
}
|
Важно! ИМЕНА статических полей, методов и.т.п. ДОЛЖНЫ ОТЛИЧАТСЯ от обычных, так как шарп не поймёт клонирование переменных.
Код программы у нас будет следующий:
static void Main() {
string _AutorName1 = Autor.GetName(); // вызов статического метода
Autor ae = new Autor();
string _AutorName2 = ae.GetName2(); // вызов метода экземпляра класса
Console.WriteLine( "Писатели: {0} и {1}", _AutorName1, _AutorName2 );
Console.ReadKey();
}
|
Результат:
Главное, чтобы вы уловили суть статики. В начале может возникнуть путаница, но если вы сами напишите парочку примеров, то суть Вам станет очевидной и не нужно будет вбивать в гугле "c# Как сделать, чтобы класс не возвращал объекта?" и прочих запросов.
По статике у нас всё, до встречи в следующих уроках :)
|763|1|0|78145578

png
13270\|44010257
png268
66||detalnee_o_static|1392798629