Top.Mail.Ru
Ответы

C# - объясните мне смысл модификатора static

Я попытался вызвать функцию из другого класса, но высветилась ошибка: "для нестатического поля метода или свойства требуется ссылка на объект". Добавил к этой функции static, тогда подчеркнулись все переменные, которые в ней используются. Добавил туда, где эти переменные объявляются, этот же static, и ошибки исчезли, код заработал правильно.
Объясните мне (я в C# новичок), что это такое и для чего оно нужно?

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект
5лет

Статические поля = глобальные переменные
Статические методы - такие, для вызова которых не требуется создание экземпляра класса. Например, для вычисления синуса Math.Sin не нужно создавать объект класса Math и задалбывать потом сборщик мусора постоянными освобождениями памяти. Логично предположить, что статические методы могут использовать только глобальные переменные, поскольку к полям несозданного объекта они обратиться не могут.
Ты же, скорее всего, спорол-с херню-с, превратив поля потенциально разных объектов в общие для всех глобальные переменные. Впрочем, мне отсюда не видно, может, ты именно так и хотел.

Аватар пользователя
Просветленный
5лет

Если ты новичок, читай книгу. Там всё должно объясняться. Думаешь знания из Астрала в мозг поступают? Нет, всё из книг.