Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#指定父类与接口之间的差异_C# - Fatal编程技术网

C#指定父类与接口之间的差异

C#指定父类与接口之间的差异,c#,C#,在C#中,指定继承的父类的方式与在类定义后指定带有“:”的接口的方式相同 公共类MyClass:父类 公共类MyClass:SimpleInterface 那么,如何判断冒号后面的项目是父类还是接口呢?规则是以大写字母I开头接口的名称,I后面的第一个字母也是大写字母:IDictionary,IList。这种模式很容易识别,应该遵循 此外: 一个类只能有一个基类,但可以实现多个接口。逗号后的所有内容都必须是一个接口:class子类:基类、IInterface1、IInterface2 在大多数现

在C#中,指定继承的父类的方式与在类定义后指定带有“:”的接口的方式相同

公共类MyClass:父类

公共类MyClass:SimpleInterface


那么,如何判断冒号后面的项目是父类还是接口呢?

规则是以大写字母I开头接口的名称,I后面的第一个字母也是大写字母:
IDictionary
IList
。这种模式很容易识别,应该遵循

此外:

  • 一个类只能有一个基类,但可以实现多个接口。逗号后的所有内容都必须是一个接口:
    class子类:基类、IInterface1、IInterface2
  • 在大多数现代IDE中,接口标识符的颜色是不同的
  • 大多数现代IDE在鼠标悬停或使用“goto definition”命令时提供此信息

关于问题标题中的“指定差异”,这在声明中有详细说明。即使您偏离了命名约定,也不能在同一名称空间中有相同名称的接口和类或结构。不需要在类声明的继承列表中按语法进行区分。

除了建议的内容之外,您可以使用如下属性

typeof(MyClass).BaseType.IsInterface

单击:后面的名称,然后按F12。VS将跳转到它的声明。如果您在声明中读到单词
接口
,则您的嫌疑人是一个接口。否则它将是一个类

通常接口的前缀为“I”
male:Person
vs
male:IPerson
如果它是一个接口,那么当您试图构建代码而没有实现接口方法时,您就会知道。另外,visual studio intellisense应该能够通过将鼠标悬停在
父类
SimpleInterface
上来告诉您,它在VS中也有颜色编码,或者使用“Peek定义”,“谁能告诉”来告诉您何时?你的意思是在编写代码、编译或运行时?