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# 中创建更灵活、适应性更强的代码。