c using statement c virtual method tutorial with examples
Цей поглиблений посібник пояснює все про C # з використанням оператора та віртуального методу. Ви також дізнаєтесь різницю між абстрактними та віртуальними методами:
Блок Використання в основному допомагає в управлінні ресурсами, він дозволяє системі управляти своїми ресурсами, вказуючи сферу дії об'єкта та потреби в ресурсах.
.Net Framework пропонує різні способи управління ресурсами для об’єктів, що використовують збирач сміття. Це означає, що вам не потрібно чітко розподіляти та видаляти об’єкти пам’яті. Очищення будь-якого некерованого об'єкта здійснюватиметься за допомогою деструктора.
Щоб допомогти програмістам досягти цього, оператор C # using забезпечує умову для знищення об'єкта.
найкращий приватний сервер world of warcraft - -
=> Ознайомтесь із Безкоштовним посібником з навчання C # тут .
Для автоматичного знищення об'єкта C # пропонує метод утилізації, який можна викликати, коли об'єкт більше не потрібен. Інструкція using у C # визначає умовні межі існування об'єкта. Як тільки послідовність виконання покине межу, що використовується, фреймворк .Net буде знати, що настав час знищити цей об'єкт.
Що ви дізнаєтесь:
C # Використання заяви
Впровадити одноразовий інтерфейс для використання
Інструкція C # Using дозволяє програмістам реалізовувати кілька ресурсів в одному операторі. Всі об'єкти, визначені всередині використовуваного кодового блоку, повинні реалізовувати інтерфейс IDisposable, і це дозволяє фреймворку викликати методи dispose для зазначених об'єктів усередині оператора після його виходу.
Приклад
Використання операторів може поєднуватися з типом, який може реалізувати IDisposable, наприклад StreamWriter, StreamReader тощо.
Давайте розглянемо просту програму:
public class Program { public static void Main(string() args) { using (SysObj so = new SysObj()) { Console.WriteLine('Inside using statement'); } Console.WriteLine('Outside of the using statement block'); } } class SysObj : IDisposable { public void Dispose() { Console.WriteLine('Dispose method'); } }
Вихідні дані
Результат роботи вищезазначеної програми:
Усередині за допомогою оператора
Метод утилізації
Поза блоку операторів using
Пояснення
У наведеному вище прикладі, коли програма виконується, спочатку екземпляр “SysObj” виділяється в купі пам'яті. Потім блок using починає виконуватись і друкує вихідні дані, які ми визначили всередині консолі. Далі, коли блок операторів Use закінчується, виконання негайно передається до методу dispose.
Потім код виходить із блоку операторів і друкує зовнішній оператор на консолі.
Віртуальний метод C #
Що таке віртуальний метод?
Віртуальний метод - це метод класу, який пропонує програмісту функціональність для перевизначення методу у похідному класі, що має однакову сигнатуру. Віртуальні методи в основному використовуються для виконання поліморфізму в середовищі ООП.
Віртуальний метод може мати реалізацію як у похідних, так і в базових класах. В основному він використовується, коли користувачеві потрібно мати більше функціональних можливостей у похідному класі.
Віртуальний метод спочатку створюється в базовому класі, а потім замінюється у похідному класі. Віртуальний метод можна створити в базовому класі за допомогою ключового слова “virtual”, а той самий метод можна замінити у похідному класі за допомогою ключового слова “override”.
Віртуальні методи: Мало пам’ятайте
- Віртуальний метод у похідному класі має ключове слово virtual, а метод у похідному класі повинен мати ключове слово override.
- Якщо метод оголошений як віртуальний метод у базовому класі, то похідний клас не завжди вимагає перевизначення цього методу, тобто необов’язковий для заміни віртуального методу в похідному класі.
- Якщо метод має однакове визначення як у базовому, так і в похідному класі, тоді не потрібно замінювати метод. Заміна необхідна лише в тому випадку, якщо обидва мають різне визначення.
- Метод заміщення дозволяє нам використовувати більше однієї форми для одного і того ж методу, отже, він також демонструє поліморфізм.
- Усі методи за замовчуванням невіртуальні.
- Віртуальний модифікатор не можна використовувати разом із модифікаторами Private, Static або Abstract.
Яке використання віртуального ключового слова в C #?
Віртуальне ключове слово в C # використовується для заміни елемента базового класу у його похідному класі на основі вимоги.
Віртуальне ключове слово використовується для вказівки віртуального методу в базовому класі, а методу з тим самим підписом, який потрібно замінити у похідному класі, передує ключове слово override.
Різниця між абстрактним методом та віртуальним методом
Віртуальні методи містять реалізацію і дозволяють похідному класу перевизначити її, тоді як абстрактний метод не пропонує жодної реалізації, і він змушує програмістів писати методи перевизначення у похідному класі.
Отже, простими словами, абстрактні методи не мають коду всередині, тоді як віртуальний метод має власну реалізацію.
Як відкрити файли 7zip на
Різниця між віртуальним та заміненим у C #
Віртуальне ключове слово, як правило, супроводжується підписом методу, властивості тощо і дозволяє замінити його у похідному класі. Ключове слово override використовується у похідному класі з тим самим підписом методу / властивості, що і в базовому класі, для досягнення перевизначення у похідному класі.
Чи обов’язково замінювати віртуальний метод на C #?
Компілятор ніколи не змушує програмістів замінювати віртуальний метод. Похідний клас не завжди вимагає перевизначення віртуального методу.
Приклад
Давайте розглянемо приклад, щоб чіткіше зрозуміти віртуальні методи.
У цьому прикладі ми будемо використовувати два різні методи в базовому класі: перший - невіртуальний метод, а другий - віртуальний метод із ключовим словом virtual. Обидва ці методи будуть замінені у похідному класі.
Давайте подивимось:
Програма
using System; public class Program { public static void Main(string() args) { calculate calc = new calculate (); numbers nmbr = calc; calc.addition(); nmbr.addition(); calc.subtraction(); nmbr.subtraction(); } } public class numbers { public void addition(){ Console.WriteLine('This is addition method'); } public virtual void subtraction(){ Console.WriteLine('This is subtraction method'); } } public class calculate : numbers { public void addition(){ Console.WriteLine('This is addition method in the derived class'); } public override void subtraction(){ Console.WriteLine('This is subtraction method override in derived class'); } }
Вихідні дані
Результатом роботи вищезазначеної програми є:
Це метод додавання у похідному класі
Це метод додавання
Це перевизначення методу віднімання у похідному класі
Це перевизначення методу віднімання у похідному класі
Пояснення
У наведеному вище прикладі ми маємо два класи, тобто Number і Calculate. Базовий клас Number має два методи, тобто додавання та віднімання, де додавання є невіртуальним методом, а віднімання - віртуальним методом. Отже, коли ми виконуємо цю програму, віртуальний метод “додавання” базового класу замінюється у похідному класі Calculate.
В іншому класі “Program” ми створюємо точку входу для створення екземпляра похідного класу Calculate, а потім присвоюємо той самий екземпляр об’єкту екземпляра базового класу.
Коли ми викликаємо віртуальні та невіртуальні методи за допомогою екземплярів класу, ми бачимо, що віртуальний метод був замінений за допомогою обох екземплярів, тоді як невіртуальний метод був замінений лише під час виклику похідного класу.
Висновок
Оператор using у C # в основному використовується для управління ресурсами. Оператор using визначає умовні межі існування об'єкта.
Після того, як виконання переміститься з блоку операторів, воно повідомляє фреймворку знищити будь-який об'єкт, створений всередині блоку операторів. Код, визначений усередині оператора, повинен також реалізовувати інтерфейс IDisposable, щоб платформа .Net могла викликати метод dispose для визначених об'єктів.
Віртуальний метод дозволяє користувачеві замінити метод у похідному класі, який має такий самий підпис, як метод у базовому класі. Віртуальний метод може бути використаний для досягнення поліморфізму в об'єктно-орієнтованих мовах програмування.
Віртуальний метод в основному використовується, коли в похідному класі потрібна додаткова функціональність. Віртуальні методи не можуть бути приватними статичними або абстрактними. Він визначається використанням віртуального ключового слова в базовому класі та перевизначення ключового слова у похідному класі.
=> Тут слідкуйте за поглибленими навчальними посібниками для C #
Рекомендована література
- Підручник із прикладами Python DateTime
- Знайти елемент селену за текстовим посібником із прикладами
- Метод сортування MongoDB () із прикладами
- Запит документа MongoDB за допомогою методу Find () (приклади)
- Використання курсору в MongoDB з прикладами
- Класи та об'єкти C #: поглиблений посібник із прикладами
- Підручник зі створення сценаріїв Unix Shell із прикладами
- Підручник з обробки винятків C # із прикладами коду