需要c#中的接口

ked*_*the 4 c# interface

c#中的接口需要什么?因为我们在接口中编写抽象方法.而不是我们可以在课堂上直接实现这些方法.

Bri*_*sen 7

接口不支持实现,因此您无法使用抽象类提供任何默认实现.此外,接口不限于层次结构,因此它们比抽象类更灵活.


Mus*_*sis 6

您不需要在 C# 中使用接口。它们在某些情况下有用且合适,但并非在所有情况下都适用。我使用的一个方便的经验法则是,如果在您的项目中只有一个实现接口的类,则不需要该接口。

注意:与此经验法则相反的一个可能是您将来可能需要编写第二个实现类,这可能证明使用该接口是合理的。我不一定同意,因为我认为编程中的大量时间都浪费在预测永远不会实现的未来场景上。

  • 单元测试怎么样?我通常使用接口,因为我创建第二个实现作为测试的存根或模拟。制定经验法则意味着您应该始终使用界面。 (3认同)
  • @DotNetWill 和 Brian Genisio:我不认为你所写的内容与我在答案中所写的内容有何相反。如果您选择模拟/存根一个类进行单元测试,那么您将有多个实现接口的类,因此您需要使用接口。如果您没有模拟/存根一个类来进行单元测试,并且您的项目中只有该类的一个实现,那么您就不需要接口。我在你的评论中遗漏了什么吗?您是说“每个项目”中的“每个类”都应该实现一个接口吗?这似乎是一个过于强烈的断言。 (3认同)
  • 但是,当您编写单元测试时,如果该类是另一个类的依赖项,则几乎总是需要模拟/存根该类。通过这样做,您将自动在测试项目中创建该接口的第二个实现。因此,我发现我经常为我的类创建接口,以便编写可测试的、解耦的代码。 (2认同)

pma*_*lee 2

您可能想阅读有关多态性的内容