Класи і структури (керівництво з програмування в c #), microsoft docs
В цій статті
Класи і структури є двома основними конструкціями системи загальних типів CTS, використовуваної в платформі .NET Framework. Обидва вони є структурами даних, які інкапсулюють набір даних і поводжень в одній логічної сутності. Дані і поведінку є членами класу або структури. До них відносяться методи, властивості, події та інші елементи, які описані далі в цій статті.
Структура (struct) є типом значення. При створенні структури змінна, якій присвоєно структура, містить фактичні дані цієї структури. Якщо структура присвоюється нової змінної, всі дані копіюються. Таким чином, нова змінна і вихідна змінна містять дві окремі копії однакових даних. Зміни, внесені в одну копію, не впливають на іншу.
У загальному випадку класи використовуються для моделювання більш складного поведінки або для таких даних, які будуть змінюватися після створення об'єкта класу. Структури краще підходять для невеликих структур даних, інформація в яких не повинна змінюватися після створення структури.
Детальну інформацію можна отримати в описах класів. об'єктів і структур.
У наступному прикладі в просторі імен ProgrammingGuide визначено клас CustomClass з трьома членами: конструктор примірника, властивість з ім'ям Number і метод з ім'ям Multiply. Метод Main в класі Program створює екземпляр (об'єкт) класу CustomClass. Звернення до методів і властивостей об'єкта здійснюється з використанням точкової нотації.
інкапсуляція
Концепцію інкапсуляції визнають одним з основоположних принципів об'єктно-орієнтованого програмування. Принцип інкапсуляції полягає в тому, що в класі або структурі можна вказати рівень доступності для звернення до кожного з його членів з коду, розташованого поза цим класу або структури. Ви можете приховати методи і змінні, які не призначені для використання поза класом або збірки. Це дозволяє знизити ризик помилок в коді і шкідливих дій.
Всі методи, поля, константи, властивості і події повинні оголошуватися всередині типу. Сукупно вони називаються членами типу. У C # не існує глобальних змінних або методів, як в деяких інших мовах. Навіть точка входу програми, тобто метод Main. повинна оголошуватися всередині класу або структури. Нижче наведено повний список можливих членів, які можна оголосити в класі або структурі.