C#可以标记和检查类何时实现接口方法吗?

马丁·巴

当基类包含virtual方法时,要在子类中添加更多派生的版本,我们必须使用override

AFAICT,这有两个目的:

  • 我们不会偶然覆盖基本方法
  • 如果覆盖时错误输入方法名称,则会收到错误消息(类似于Java,对吧?)

但是,令我沮丧的是,在VS2010 / .NET4中,实现接口方法时似乎无法使用override

显然,第一个项目符号不是一个问题,但是该override关键字将作为一个很好的简单文档,并检查接口方法是否实际上被标记为override

因此,当查看类实现时,除了以外,还有没有其他// comment方法可以表明该方法实现了特定接口的方法?

MatíasFidemraizer

我相信这句话概括了您所关心的一切:

但是overridekeyword可以作为一个很好的简单文档,并检查接口方法是否实际上是被标记为override的接口方法。

考虑一下什么是接口,什么是实现者。类可以实现也可以不实现接口,并且仍然可以实现具有与接口相同签名的方法。什么一个接口的作用是确保一些类有需要的成员fullfil合同的工作。

例如,一个类Calculator可以实现ICalculatorCalculator实现Addition(int, int)但是Calculator无法实现ICalculator,它仍然可以执行Addition(int, int)

您如何区分这两种情况?何时使用override或不使用

另一点:实现一个类,实现一个接口并通过在继承冒号之后将其从类签名中删除而停止实现它,这是很好的

另一方面,认为您正在寻找的文档是编译器错误,告诉您Calculator实现接口,ICalculator但没有声明和实现由定义的一个或多个成员ICalculator如果代码可以编译,则您不必在意某个成员是否属于某个接口或其他接口。您知道某些成员是某些接口的实现,因为您的Calculator签名看起来像这样:public class Calculator : ICalculator

同样,在某些情况下,实现成员将其实现为实现除接口之外的其他功能有什么凌驾您的实现?这是否比避免override关键字更令人困惑

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

标记接口(如serializable)可以包含默认方法吗?

来自分类Dev

在基类中声明的C#接口方法无需在派生类中再次实现

来自分类Dev

C#接口可以要求或指定特定的类吗?

来自分类Dev

我可以得到扩展类并实现接口的对象集合吗?

来自分类Dev

C#可以隐藏继承的接口吗?

来自分类Dev

确保只有实现特定接口的类才能调用方法?C#?

来自分类Dev

我可以在C#的子接口中覆盖父接口方法吗?

来自分类Dev

可以指定一个Dart接口,该接口可以由类使用sync或async方法实现吗?

来自分类Dev

防止在派生类C#中调用基类实现的接口方法

来自分类Dev

在扩展类上,我可以使用实现多个接口的类的getter和setter方法吗

来自分类Dev

检查方法是否实现带有属性标记的接口方法

来自分类Dev

如何使用C#中的委托来实现使用接口和实现类的类似设计(从Java)

来自分类Dev

我可以在C ++中创建一个匿名的即时类(接口的实现)吗

来自分类Dev

我们可以用C#中的带有默认方法的接口替换抽象类吗

来自分类Dev

C#方法调用无法将实现接口的类转换为所述接口

来自分类Dev

C#:定义类和接口类型的参数的任何方法吗?

来自分类Dev

C ++接口可以从具有完整实现的类继承吗?

来自分类Dev

C#中的一个接口和两个实现类(代理)

来自分类Dev

在基类中声明的C#接口方法无需在派生类中再次实现

来自分类Dev

Visual C ++可以检查不匹配的原型和实现吗?

来自分类Dev

C#函数参数实现抽象类和多个接口

来自分类Dev

是否可以在接口的派生类中仅使用C#中的该接口的某些方法?

来自分类Dev

一个类可以继承其他类的接口所构造的方法的实现吗?

来自分类Dev

确保只有实现特定接口的类才能调用方法?C#?

来自分类Dev

使用C#是否可以实现早期绑定的接口和晚期绑定的实现

来自分类Dev

获取类继承并在C#中实现的所有类型和接口

来自分类Dev

C#:我的派生类无法覆盖基类的接口方法实现,为什么?

来自分类Dev

C#类的工厂,实现通用接口

来自分类Dev

c ++类实现接口,接口具有采用实现该接口的任何类的方法

Related 相关文章

  1. 1

    标记接口(如serializable)可以包含默认方法吗?

  2. 2

    在基类中声明的C#接口方法无需在派生类中再次实现

  3. 3

    C#接口可以要求或指定特定的类吗?

  4. 4

    我可以得到扩展类并实现接口的对象集合吗?

  5. 5

    C#可以隐藏继承的接口吗?

  6. 6

    确保只有实现特定接口的类才能调用方法?C#?

  7. 7

    我可以在C#的子接口中覆盖父接口方法吗?

  8. 8

    可以指定一个Dart接口,该接口可以由类使用sync或async方法实现吗?

  9. 9

    防止在派生类C#中调用基类实现的接口方法

  10. 10

    在扩展类上,我可以使用实现多个接口的类的getter和setter方法吗

  11. 11

    检查方法是否实现带有属性标记的接口方法

  12. 12

    如何使用C#中的委托来实现使用接口和实现类的类似设计(从Java)

  13. 13

    我可以在C ++中创建一个匿名的即时类(接口的实现)吗

  14. 14

    我们可以用C#中的带有默认方法的接口替换抽象类吗

  15. 15

    C#方法调用无法将实现接口的类转换为所述接口

  16. 16

    C#:定义类和接口类型的参数的任何方法吗?

  17. 17

    C ++接口可以从具有完整实现的类继承吗?

  18. 18

    C#中的一个接口和两个实现类(代理)

  19. 19

    在基类中声明的C#接口方法无需在派生类中再次实现

  20. 20

    Visual C ++可以检查不匹配的原型和实现吗?

  21. 21

    C#函数参数实现抽象类和多个接口

  22. 22

    是否可以在接口的派生类中仅使用C#中的该接口的某些方法?

  23. 23

    一个类可以继承其他类的接口所构造的方法的实现吗?

  24. 24

    确保只有实现特定接口的类才能调用方法?C#?

  25. 25

    使用C#是否可以实现早期绑定的接口和晚期绑定的实现

  26. 26

    获取类继承并在C#中实现的所有类型和接口

  27. 27

    C#:我的派生类无法覆盖基类的接口方法实现,为什么?

  28. 28

    C#类的工厂,实现通用接口

  29. 29

    c ++类实现接口,接口具有采用实现该接口的任何类的方法

热门标签

归档