c using statement c virtual method tutorial with examples
Aquest tutorial detallat explica tot sobre C # utilitzant la declaració i el mètode virtual. També aprendreu la diferència entre els mètodes abstractes i els mètodes virtuals:
El bloc Ús ajuda principalment a la gestió de recursos, permet que el sistema gestioni els seus recursos especificant l’abast de l’objecte i el seu requisit de recursos.
.Net Framework ofereix diferents maneres de gestió de recursos per a objectes que utilitzen un col·lector d’escombraries. Vol dir que no cal assignar ni eliminar explícitament objectes de memòria. L'operació de neteja de qualsevol objecte no gestionat es gestionarà mitjançant un destructor.
Per ajudar els programadors a aconseguir-ho, la sentència C # using proporciona una condició per a la destrucció de l'objecte.
=> Consulteu la guia de formació gratuïta C # aquí .
Per aconseguir l'autodestrucció de l'objecte, C # ofereix un mètode de disposició que es pot trucar quan l'objecte ja no és necessari. La sentència using a C # defineix un límit condicional per a l'existència de l'objecte. Un cop la seqüència d'execució abandoni el límit d'ús, el marc .Net sabrà que és hora de destruir aquest objecte.
Què aprendreu:
C # Ús de la declaració
Implementar la interfície IDisposable per utilitzar-la
La sentència C # Using permet als programadors implementar diversos recursos en una sentència. Tots els objectes definits dins del bloc de codi que s’utilitza haurien d’implementar la interfície IDisposable i això permet que el framework pugui cridar als mètodes de disposició dels objectes especificats dins de la sentència una vegada que surti.
Exemple
L’ús d’enunciats es pot combinar amb un tipus que pot implementar IDsposable com StreamWriter, StreamReader, etc.
Vegem un programa senzill:
currículum manual de proves durant 3 anys d’experiència
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'); } }
Sortida
La sortida del programa anterior:
Dins usant declaració
Mètode de disposició
Fora del bloc d’instruccions que s’utilitzen
Explicació
A l'exemple anterior, quan s'executa el programa, primer s'assigna la instància 'SysObj' al munt de memòria. A continuació, el bloc que s'utilitza comença a executar-se i imprimeix la sortida que hem definit a la consola. A continuació, a mesura que es supera el bloc d’instruccions Using, l’execució es transfereix immediatament al mètode dispose.
A continuació, el codi surt del bloc de sentències i imprimeix la sentència exterior a la consola.
C # Mètode virtual
Què és un mètode virtual?
Un mètode virtual és un mètode de classe que ofereix funcionalitat al programador per anul·lar un mètode de la classe derivada que tingui la mateixa signatura. Els mètodes virtuals s’utilitzen principalment per realitzar polimorfisme a l’entorn de POO.
Un mètode virtual pot tenir una implementació tant en classes derivades com en bases. S'utilitza principalment quan un usuari necessita tenir més funcionalitats a la classe derivada.
Primer es crea un mètode virtual en una classe base i després s’anul·la a la classe derivada. Es pot crear un mètode virtual a la classe base mitjançant la paraula clau 'virtual' i es pot anul·lar el mateix mètode a la classe derivada mitjançant la paraula clau 'sobreescriure'.
Mètodes virtuals: pocs punts per recordar
- El mètode virtual de la classe derivada té la paraula clau virtual i el mètode de la classe derivada ha de tenir una paraula clau d’anul·lació.
- Si un mètode es declara com a mètode virtual a la classe base, la classe derivada no sempre requereix que substitueixi aquest mètode, és a dir, és opcional substituir un mètode virtual a la classe derivada.
- Si un mètode té la mateixa definició tant a la classe base com a la derivada, no cal que anul·leu el mètode. La substitució només és necessària si tots dos tenen una definició diferent.
- El mètode de substitució ens permet utilitzar més d’un formulari per al mateix mètode, de manera que també mostra polimorfisme.
- Tots els mètodes no són virtuals per defecte.
- No es pot utilitzar un modificador virtual juntament amb modificadors privats, estàtics o abstractes.
Quin ús fa de les paraules clau virtuals a C #?
La paraula clau virtual a C # s'utilitza per substituir el membre de la classe base a la seva classe derivada en funció del requisit.
quin és el millor netejador d’ordinadors
S’utilitza una paraula clau virtual per especificar el mètode virtual a la classe base i el mètode amb la mateixa signatura que s’ha d’anul·lar a la classe derivada va precedit per una paraula clau d’anul·lació.
Diferència entre el mètode abstracte i el mètode virtual
Els mètodes virtuals contenen implementació i permeten que la classe derivada la substitueixi, mentre que el mètode abstracte no ofereix cap implementació i obliga els programadors a escriure mètodes de substitució a la classe derivada.
Per tant, en paraules simples, els mètodes abstractes no tenen cap codi al seu interior, mentre que el mètode virtual té la seva pròpia implementació.
Diferència entre Virtual i Override a C #
La paraula clau virtual sol anar seguida de la signatura del mètode, la propietat, etc. i permet substituir-la a la classe derivada. La paraula clau de substitució s'utilitza a la classe derivada amb el mateix mètode / signatura de propietat que a la classe base per aconseguir la substitució a la classe derivada.
És obligatori anul·lar el mètode virtual a C #?
El compilador mai farà complir els programadors per substituir un mètode virtual. La classe derivada no sempre requereix que substitueixi el mètode virtual.
Exemple
Vegem un exemple per entendre més clarament els mètodes virtuals.
En aquest exemple, utilitzarem dos mètodes diferents a la classe base, el primer és un mètode no virtual i l’altre és un mètode virtual amb la paraula clau virtual. Tots dos mètodes s’anul·laran a la classe derivada.
Fem una ullada a:
Programa
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'); } }
Sortida
La sortida del programa anterior és:
Aquest és el mètode d'addició a la classe derivada
Aquest és el mètode d'addició
Es tracta de la substitució del mètode de resta a la classe derivada
Es tracta de la substitució del mètode de resta a la classe derivada
Explicació
A l'exemple anterior, tenim dues classes, és a dir, Nombre i Calcula. La classe base Number té dos mètodes, és a dir, suma i resta, on la suma és un mètode no virtual i la resta és un mètode virtual. Per tant, quan executem aquest programa, el mètode virtual “addició” de classe base s’anul·la a la classe calculada derivada.
que és el millor proveïdor de correu electrònic
En una altra classe 'Programa' creem un punt d'entrada per crear una instància de la classe derivada Calcula i després assignem la mateixa instància a l'objecte d'instància de la classe base.
Quan anomenem mètodes virtuals i no virtuals mitjançant les instàncies de classe, veiem que el mètode virtual s'ha anul·lat mitjançant l'ús de les dues instàncies, mentre que el mètode no virtual només s'ha anul·lat mentre es crida a la classe derivada.
Conclusió
La sentència using a C # s’utilitza principalment per a la gestió de recursos. La sentència using defineix un límit condicional per a l'existència d'un objecte.
Una vegada que l’execució surt del bloc d’instruccions, indica al marc que destrueixi qualsevol objecte que s’hagi creat dins del bloc d’instruccions. El codi definit dins de la sentència també hauria d'implementar una interfície IDisposable per permetre que el framework .Net cridi al mètode dispose dels objectes definits.
Un mètode virtual permet a l'usuari substituir un mètode de la classe derivada que té la mateixa signatura que el mètode de la classe base. El mètode virtual es pot utilitzar per aconseguir polimorfisme en llenguatges de programació orientats a objectes.
Un mètode virtual s'utilitza principalment quan es requereix una funcionalitat addicional a la classe derivada. Els mètodes virtuals no poden ser privats estàtics ni abstractes. Es defineix mitjançant una paraula clau virtual a la classe base i substitueix la paraula clau a la classe derivada.
=> Mireu aquí els tutorials de formació C # en profunditat
Lectura recomanada
- Tutorial de Python DateTime amb exemples
- Tutorial Selenium Find Element By Text amb exemples
- MongoDB Sort () Mètode amb exemples
- Document de consulta MongoDB mitjançant el mètode Find () (exemples)
- Ús del cursor a MongoDB amb exemples
- C # Classes i objectes: un tutorial en profunditat amb exemples
- Tutorial de script Unix Shell amb exemples
- Tutorial de maneig d'excepcions C # amb exemples de codi