¿Qué es el método virtual en C#?
Los métodos virtuales en C# son métodos que se declaran en una clase base y pueden ser anulados por clases derivadas. En otras palabras, un método virtual es un método que se puede redefinir en una subclase, aquí está la sintaxis para ello:
Vacío virtual públicoLa palabra clave virtual indica que este método puede ser anulado por una clase derivada y cuando una clase derivada anula un método virtual, proporciona su propia implementación del método.
Para anular un método virtual en una clase derivada, incluye la palabra clave de anulación en la firma del método y a continuación se encuentra la sintaxis:
anulación pública nulaLa palabra clave de anulación indica que este método está anulando un método virtual en la clase principal. Aquí hay un fragmento de código de ejemplo que demuestra el uso de métodos virtuales en C#:
usando el sistema;En este ejemplo, tenemos una clase base llamada cálculo con un método virtual llamado ADD que simplemente agrega dos enteros juntos. También tenemos una clase derivada llamada CustomCalculation que anula el método ADD, pero solo cuando la suma de los dos números es mayor que 10.
En el método ADD anulado, verificamos si X o Y es mayor de 10. Si esta condición es verdadera, devolvemos la diferencia entre x e y y si la condición es falsa, llamamos a la implementación base del método Agregar usando la palabra clave base.
En el método principal, creamos un objeto de cálculo y un objeto CustomCalculation. Primero llamamos al método de agregado virtual en el objeto de cálculo base, pasando 5 y 7 como argumentos. Esto debería dar como resultado una suma de 12 y luego llamamos al método de agregado anulado en el objeto CustomCalculation, pasando 12 y 7 como argumentos. Esto debería dar lugar a una diferencia de 5, ya que la suma de los dos números es mayor que 10.
Como puede ver, el método ADD anulado en la clase CustomCalculation solo se llama cuando la condición es falsa. Cuando la condición es verdadera, el método anulado proporciona una implementación diferente del método ADD que resta el segundo número desde el primero, a continuación se produce la salida del código:
Conclusión
El método virtual en C# proporciona una forma para que las clases definan métodos que se pueden personalizar mediante clases derivadas. Al marcar un método como virtual, permite que las clases derivadas proporcionen su propia implementación del método y la suya es una característica poderosa de la programación orientada a objetos que permite una mayor flexibilidad y reutilización en el código.