C# 中的默认接口方法

csharpserver side programmingprogramming

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

C# 中的传统接口方法

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

默认接口方法简介

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

这是一个简单的例子 -

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

public class User : IGreetable {
    // 无需实现 Greet 方法,将使用默认实现。
}

注意 − 默认接口方法是 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# 中创建更灵活、适应性更强的代码。


相关文章