C#中的默认接口方法


默认接口方法是一项改变游戏规则的功能,允许开发者向接口添加新方法,而不会破坏现有的实现。本文将解释C#中的默认接口方法,向您展示如何在自己的代码中有效地使用它们。

C#中的传统接口方法

传统上,C#中的接口只能包含方法、属性、事件或索引器的声明,而不能包含它们的实现。任何实现该接口的类或结构都必须为接口的每个成员提供实现。

默认接口方法简介

引入默认接口方法是为了解决传统接口的局限性。使用默认接口方法,可以直接在接口中为方法提供默认实现。如果类或结构实现该接口但未为此方法提供实现,则将使用默认实现。

这是一个简单的例子:

public interface IGreetable {
   void Greet(string name) {
      Console.WriteLine($"Hello, {name}!");
   }
}

public class User : IGreetable {
   // No need to implement Greet method, the default implementation will be used.
}

注意:默认接口方法是C# 8.0提出的功能的一部分。

在这个例子中,IGreetable接口为Greet方法提供了默认实现。User类实现了IGreetable,但没有为Greet提供自己的实现,因此将使用默认实现。

重写默认接口方法

即使接口为方法提供了默认实现,实现类或结构仍然可以提供自己的实现。这称为重写默认实现。

public class Admin : IGreetable {
   public void Greet(string name) {
      Console.WriteLine($"Hello, {name}. You are an admin.");
   }
}

在这个例子中,Admin类为Greet方法提供了自己的实现,重写了IGreetable提供的默认实现。

结论

默认接口方法是C#中的一项强大功能,允许您随着时间的推移改进接口,而不会破坏现有的实现。通过理解默认接口方法,您可以在C#中创建更灵活、更易于适应的代码。

更新于:2023年7月24日

477 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告