c using statement c virtual method tutorial with examples
Овај продубљени водич објашњава све о Ц # помоћу изјаве и виртуелне методе. Такође ћете научити разлику између апстрактних и виртуелних метода:
Блок Употреба углавном помаже у управљању ресурсима, омогућава систему да управља ресурсима одређивањем опсега објекта и захтева за ресурсима.
.Нет Фрамеворк нуди различите начине за управљање ресурсима за објекте који користе сакупљач смећа. То значи да не требате експлицитно додељивати и уклањати меморијске објекте. Операција чишћења било ког неуправљаног објекта обављаће се помоћу деструктора.
Да би помогао програмерима да то постигну, наредба Ц # усинг пружа услов за уништавање објекта.
=> Овде погледајте бесплатни водич за обуку за Ц # .
Да би постигао аутоматско уништавање објекта, Ц # нуди методу одлагања која се може позвати када објекат више није потребан. Наредба усинг у Ц # дефинише условну границу постојања објекта. Једном када секвенца извршавања напусти границу коришћења, .Нет фрамеворк ће знати да је време да уништи тај објекат.
Шта ћете научити:
Ц # Коришћење изјаве
Имплементирајте интерфејс за једнократну употребу за употребу
Изјава Ц # Усинг омогућава програмерима да примене неколико ресурса у једној изјави. Сви објекти дефинисани унутар корисничког блока кода треба да имплементирају интерфејс ИДиспосабле, а то омогућава оквиру да позове методе располагања за наведене објекте унутар израза након што изађе.
Пример
Коришћење израза може се комбиновати са типом који може применити ИДиспосабле попут СтреамВритер, СтреамРеадер итд.
Погледајмо једноставан програм:
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'); } }
Оутпут
Резултат горњег програма:
Изнутра помоћу изјаве
Метода одлагања
Изван блока изјава користећи
Објашњење
У горњем примеру, када се програм извршава, прво се инстанца „СисОбј“ додељује у гомилу меморије. Тада блок усинг започиње извршавање и исписује излаз који смо дефинисали унутар конзоле. Даље, како блок наредбе Усинг прелази, извршење се одмах преноси на методу одлагања.
Тада код излази из блока израза и исписује спољни израз на конзолу.
Ц # виртуелни метод
Шта је виртуелна метода?
Виртуелна метода је метода класе која програмеру нуди функционалност за надјачавање методе у изведеној класи која има исти потпис. Виртуелне методе се углавном користе за извођење полиморфизма у ООП окружењу.
Виртуелна метода може имати имплементацију и у изведеним и у основним класама. Углавном се користи када корисник треба да има више функционалности у изведеној класи.
Виртуелна метода се прво креира у основној класи, а затим се поништава у изведеној класи. Виртуелна метода се може креирати у основној класи помоћу кључне речи „виртуал“, а иста метода се може надјачати у изведеној класи употребом кључне речи „оверриде“.
Виртуелне методе: Неколико тачака за памћење
- Виртуелна метода у изведеној класи има виртуелну кључну реч, а метода у изведеној класи треба да има надјачану кључну реч.
- Ако је метода декларисана као виртуелна метода у основној класи, изведена класа не захтева увек да надјача ту методу, тј. Није обавезна да замени виртуелну методу у изведеној класи.
- Ако метода има исту дефиницију и у основној и у изведеној класи, тада није потребно да је замени. Замена је потребна само ако оба имају различиту дефиницију.
- Надређена метода омогућава нам да користимо више облика за исту методу, па стога показује и полиморфизам.
- Све методе су подразумевано не-виртуелне.
- Виртуелни модификатор се не може користити заједно са приватним, статичким или апстрактним модификаторима.
Која је употреба виртуелне кључне речи у језику Ц #?
Виртуелна кључна реч у Ц # користи се за надјачавање члана основне класе у изведеној класи на основу захтева.
Виртуелна кључна реч користи се за одређивање виртуелне методе у основној класи, а методи са истим потписом који треба надјачати у изведеној класи претходи кључна реч оверриде.
Разлика између апстрактне методе и виртуелне методе
Виртуелне методе садрже имплементацију и омогућавају да је изведена класа надјача, док апстрактна метода не нуди никакву имплементацију и приморава програмере да напишу методе замене у изведеној класи.
Отуда, једноставним речима, апстрактне методе немају код у себи, док виртуелна метода има сопствену имплементацију.
Разлика између виртуелног и поништавања у Ц #
Виртуелну кључну реч обично прати потпис методе, својства итд. И омогућава да се она замени у изведеној класи. Кључна реч оверриде користи се у изведеној класи са истим потписом методе / својства као у основној класи за постизање замене у изведеној класи.
Да ли је обавезно надјачати виртуелни метод у Ц #?
Компајлер никада неће приморати програмере да надјачају виртуелну методу. Изведена класа не захтева увек да замени виртуелни метод.
Пример
Погледајмо пример да бисмо јасније разумели виртуелне методе.
У овом примеру ћемо користити две различите методе у основној класи, прва је не-виртуелна метода, а друга је виртуелна метода са виртуелном кључном речи. Обе ове методе ће бити замењене у изведеној класи.
Погледајмо:
подразумевани мрежни пролаз није доступан. Виндовс 10 се стално дешава
Програм
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'); } }
Оутпут
Резултат горњег програма је:
Ово је метода сабирања у изведеној класи
Ово је метода сабирања
Ово је замена методе одузимања у изведеној класи
Ово је замена методе одузимања у изведеној класи
Објашњење
У горњем примеру имамо две класе, тј. Број и Израчунај. Основна класа Нумбер има две методе, односно сабирање и одузимање, при чему је сабирање не-виртуелна метода, а одузимање је виртуелна метода. Дакле, када извршимо овај програм, виртуална метода „додавање“ основне класе поништава се у изведеној класи Калкулиши.
У другој класи „Програм“ креирамо улазну тачку да бисмо креирали инстанцу изведене класе Цалцулате, а затим доделимо исту инстанцу објекту инстанце основне класе.
Када виртуалне и не-виртуалне методе позивамо помоћу инстанци класе, видимо да је виртуална метода надјачана употребом обе инстанце, док је не-виртуална метода замењена само приликом позивања изведене класе.
Закључак
Изјава усинг у Ц # углавном се користи за управљање ресурсима. Наредба усинг дефинише условну границу постојања објекта.
Једном када се извршење помакне из блока наредби, говори оквиру да уништи било који објект који је створен унутар блока израза. Код дефинисан унутар израза такође треба да имплементира интерфејс за једнократну употребу како би се .Нет оквиру дозвао метод диспосе за дефинисане објекте.
Виртуелна метода омогућава кориснику да надјача методу у изведеној класи која има исти потпис као метода у основној класи. Виртуелна метода се може користити за постизање полиморфизма у објектно оријентисаним програмским језицима.
Виртуелна метода се углавном користи када је у изведеној класи потребна додатна функционалност. Виртуелне методе не могу бити приватне статичке или апстрактне. Дефинише се употребом виртуелне кључне речи у основној класи и замењивањем кључне речи у изведеној класи.
=> Овде припазите на детаљне туторијале за обуку за Ц #
Препоручено читање
- Водич за Питхон ДатеТиме са примерима
- Водич за текст помоћу примера у тексту за проналажење селена
- МонгоДБ метода сортирања () са примерима
- МонгоДБ документ са упитом помоћу методе Финд () (примери)
- Употреба курсора у МонгоДБ са примерима
- Ц # класе и објекти: продубљени водич са примерима
- Водич за скрипте за Уник Схелл са примерима
- Водич за руковање изузецима за Ц # са примерима кода