接口是 .NET Core 编程语言的一项强大功能,可用于在代码的不同部分之间定义协定。这可以帮助您编写更易于维护、可测试和可重用的代码。
接口是一种引用类型,用于定义其他类型必须实现的协定。此协定指定实现类型必须提供的成员(属性、方法、事件等)。
接口很重要,原因有很多。他们可以帮助您:
若要在 .NET Core 中使用接口,首先需要定义该接口。这可以使用关键字来完成。例如,以下代码定义数据存储库的接口:interface
public interface IRepository<T>
{
IEnumerable<T> GetAll();
T GetById(int id);
void Add(T entity);
void Update(T entity);
void Delete(T entity);
}
定义接口后,可以为不同类型的数据存储库实现它。例如,以下代码实现数据库存储库的接口:IRepository
public class DatabaseRepository<T> : IRepository<T>
{
private readonly DbContext _context;
public DatabaseRepository(DbContext context)
{
_context = context;
}
public IEnumerable<T> GetAll()
{
return _context.Set<T>().ToList();
}
public T GetById(int id)
{
return _context.Set<T>().Find(id);
}
public void Add(T entity)
{
_context.Set<T>().Add(entity);
_context.SaveChanges();
}
public void Update(T entity)
{
_context.Set<T>().Update(entity);
_context.SaveChanges();
}
public void Delete(T entity)
{
_context.Set<T>().Remove(entity);
_context.SaveChanges();
}
}
现在,您已经实现了该接口,您可以使用它来编写与数据存储库的特定实现分离的代码。例如,以下代码使用接口从数据存储库获取所有产品:IRepository
IRepository<Product> productRepository = new DatabaseRepository<Product>(new MyDbContext());
IEnumerable<Product> products = productRepository.GetAll();
此代码现在可以与实现接口的任何类型的数据存储库一起使用,而无需更改代码本身。
接口是 .NET Core 编程语言的一项强大功能,可帮助你编写更易于维护、可测试和可重用的代码。通过使用接口,可以将代码的实现与其使用分离,促进依赖注入,并促进代码重用。