考虑以下:
public interface ITree<X>
{
...
ITree<X> Union(ITree<X> other);
...
}
这个想法是我要实现几种类型的树。但是,该Union()
方法仅在您尝试合并两个相同类型的树时才有效。但是,上面的类型签名并没有强制执行此限制。
所以,我的问题是:如何编写类型签名以Union()
使other
参数必须具有与 相同的类型this
?
(显然,如果类型不匹配,我可以进行动态运行时测试并抛出异常。但我更愿意在编译时检查它是否可以完成......)