CSharp Cheat sheet

Tu guía rápida para programar en C#

Interfaces en C#

Las interfaces son contratos que definen un conjunto de miembros que una clase o struct debe implementar. Son fundamentales en la programación orientada a objetos porque permiten definir comportamientos comunes de manera abstracta, fomentando la reutilización, el desacoplamiento y la flexibilidad del código.

Definir una interfaz

Una interfaz se define usando la palabra clave interface. Puede declarar métodos, propiedades, eventos o indexadores sin proporcionar implementación.

public interface IVehiculo {
    void Conducir();
    int VelocidadMaxima { get; }
}
    

Aquí, IVehiculo define un método y una propiedad que cualquier clase que la implemente debe definir.

Implementar una interfaz

Una clase usa la palabra clave : para indicar que implementa la interfaz y debe proporcionar la lógica de sus miembros.

public class Coche : IVehiculo {
    public int VelocidadMaxima { get; } = 200;

    public void Conducir() {
        Console.WriteLine("El coche está en marcha.");
    }
}
    

Esto permite tratar todos los objetos que implementan IVehiculo de forma uniforme.

Uso del polimorfismo con interfaces

Puedes declarar variables del tipo de la interfaz para usar cualquier implementación concreta.

IVehiculo miVehiculo = new Coche();
miVehiculo.Conducir();
// Salida: El coche está en marcha.
    

Esto facilita el diseño orientado a interfaces y promueve el principio de inversión de dependencias.

Buenas Prácticas

Usa interfaces para definir comportamientos comunes entre clases no relacionadas. Evita inflarlas con demasiados miembros. Prefiere inyectar dependencias por interfaz para hacer el código más testeable y flexible. Nómbralas con el prefijo I por convención.

Ver también

Documentación oficial de Microsoft

Ver más en Microsoft Docs