Static c #, статичні поля і методи

Static c #, статичні поля і методи

Всім доброго часу доби. На зв'язку Олексій Гулинін. У минулій статті ви дізналися про extension-методи в C #. У даній статті я б хотів поговорити про статичні класи в C #. Крім модифікатора доступу, перед назвою поля, методу або властивості можна написати ключове слово "static". "Static" означає, що дане поле, метод або властивість буде належати не кожному об'єкту класу, а всім їм разом. Класичний приклад: як визначити скільки об'єктів одного класу було створено? Для вирішення даного питання, як раз і служать статичні поля.

Давайте розберемо на прикладі з кімнатами. Напишемо клас "Room":

Статичний метод дозволяє викликати метод, не маючи в наявності жодного об'єкта. Замість імені об'єкта вказується ім'я класу:

Відмінності статичного методу від нестатичних:

  1. Для виклику статичного методу не потрібен об'єкт.
  2. Усередині статичного методу недоступна змінна "this", відповідно недоступні всі нестатичні поля цього класу, тому що як немає об'єкта.
  3. Усередині традиційного способу доступні як статичні, так і нестатичні поля.

В C # 4.0 з'явилася можливість і сам клас зробити статичним:

Іноді створюють класи, які складаються тільки з статичних методів. По суті, такі класи є контейнерами і це відходить від концепції ООП. Таким чином, публічно статичні класи є глобальними функціями. Також не можна створювати екземпляри статичного класу.

У даній статті ви дізналися про ключове слово static в C #.

Ще статті.

  • Static c #, статичні поля і методи
    SoapFormatter C #
  • Static c #, статичні поля і методи
    Directory C #
  • Static c #, статичні поля і методи
    Розмір каталогу C #
  • Static c #, статичні поля і методи
    BinaryFormatter C #
  • Static c #, статичні поля і методи
    Json-сериализация в C #

Схожі статті