接口就像“过滤器类型”吗?

时间:2019-09-05 04:53:45

标签: c# interface

也许这是一个愚蠢的问题,但是我想知道创建一个空的接口作为“过滤器”类型是否是一个好习惯?

例如:仅对实现必需/特定接口的对象执行某些操作?

3 个答案:

答案 0 :(得分:1)

有比使用Marker Interface更好的方法,FXCop建议使用Avoid empty interfaces

有关更多详细信息,请参见这些答案;

答案 1 :(得分:1)

您的想法是正确的,这是接口的目的,但是您已经提到:

  

执行一些操作

表示您要执行某些方法,甚至更好。在那种情况下,我建议使用这样的界面:

public interface IMyInterface
{
  void MyAction();
}

然后,您可以在任何暗示接口的对象上调用MyAction

很显然,这里的void可以更改为您想要返回的任何类型,并且可以使用任何符合您要求的参数:)

More on interfaces

答案 2 :(得分:0)

接口用于强制某些东西,就像每辆汽车都具有轮胎,仪表板和喇叭功能一样。 因此,此CarObject类将被所有Car类继承,并且CarObject类中函数的实现将被强制在继承它们的类中进行。是的,它可以用作过滤器并根据需要添加功能。