Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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#_Oop_Interface_Abstract Class - Fatal编程技术网

C# 接口知道它的实现者

C# 接口知道它的实现者,c#,oop,interface,abstract-class,C#,Oop,Interface,Abstract Class,我是否可以在接口中以某种方式指定其所有实现都将从某个抽象类继承?将接口放在抽象类上,并从该抽象类派生。将接口放在抽象类上,并从该抽象类派生。直接否 除非你找到一些技巧/解决方法,我强烈怀疑 没有 除非你找到一些技巧/解决方法,我强烈怀疑 您可以通过注释/文档说明,但不能通过编译时检查/语法强制执行 如果为所有实现定义一个基类,并且它确实减少了实现者的工作量,那么他们没有理由不这么做。e、 g.ICollection和CollectionBase在.Net framework中您可以通过注释/文档

我是否可以在接口中以某种方式指定其所有实现都将从某个抽象类继承?

将接口放在抽象类上,并从该抽象类派生。

将接口放在抽象类上,并从该抽象类派生。

直接否 除非你找到一些技巧/解决方法,我强烈怀疑

没有
除非你找到一些技巧/解决方法,我强烈怀疑

您可以通过注释/文档说明,但不能通过编译时检查/语法强制执行


如果为所有实现定义一个基类,并且它确实减少了实现者的工作量,那么他们没有理由不这么做。e、 g.ICollection和CollectionBase在.Net framework中

您可以通过注释/文档说明,但不能通过编译时检查/语法强制执行


如果为所有实现定义一个基类,并且它确实减少了实现者的工作量,那么他们没有理由不这么做。e、 g.Net framework中的ICollection和CollectionBase

如果不想公开接口,可以将接口方法定义为抽象类中的抽象方法并删除接口,或者将接口设置为内部接口,不向用户公开。

如果不想公开接口,或者将接口方法定义为抽象类中的抽象方法,并删除接口,或者将接口设置为内部接口,不要将其公开给用户。

为什么他们必须同时实现您的接口和抽象类?听起来您应该向抽象类添加接口方法并删除接口。让抽象类实现接口,我看不出它的用途,但我认为它最符合您的要求。@Vladimir-如果您这样做是为了适应未来的变化而不破坏现有的客户机,那么只需使用一个不带interface@Vladimir-我以为是某个基地的东西。因此,抽象类和接口似乎不相关。在这种情况下,恐怕您必须通过代码来处理此问题—执行运行时类型检查并相应地进行处理。但是,在我这样做之前,我会仔细检查我的设计,以确认没有替代。为什么它们必须同时实现您的接口和抽象类?听起来您应该向抽象类添加接口方法并删除接口。让抽象类实现接口,我看不出它的用途,但我认为它最符合您的要求。@Vladimir-如果您这样做是为了适应未来的变化而不破坏现有的客户机,那么只需使用一个不带interface@Vladimir-我以为是某个基地的东西。因此,抽象类和接口似乎不相关。在这种情况下,恐怕您必须通过代码来处理此问题—执行运行时类型检查并相应地进行处理。不过,在我这么做之前,我会仔细检查我的设计,以确认没有替换。我不能更改抽象类。我不能更改抽象类。