C#接口约束

时间:2016-01-27 23:59:47

标签: c# interface

我有一个如下界面:

public interface IOutlinesComputable
{
    Tuple<Point,Point> getBoundingBox();
}

此外,我有一个实现此接口的抽象类 Shape Shape 的两个子类: SimpleShape GroupShapes - 后者包含 Shape 的列表。

我的客户端代码获取 IOutlinesComputable 的列表。我想通过这个列表并检查每对 IOutlinesComputable s,如果它们的边界框重叠。如果是这样,我想合并这些:在形状的情况下,通过创建 GroupShapes 的新实例并向其添加重叠的 Shape

我可以在界面中说明实现 IOutlinesComputable 的A类必须有一个子类 B 引用 A 的列表,这样我就可以为所有构造的对象执行此过程,如 Shape SimpleShape GroupShapes

我只是意识到我必须注意 IOutlinesComputable 列表中的所有对象都是相同的类型 A (所以它变得不那么好了),但无论如何我想知道这样的事情是否可能或如何设计这个最佳方式。

1 个答案:

答案 0 :(得分:2)

  

我可以在接口中声明实现IOutlinesComputable的类A必须有一个引用As列表的子类B,以便我可以对所有像Shape,SimpleShape和GroupShapes这样的结构对象执行此过程吗?

不,没有办法在语言中表达这样的约束。