【发布时间】:2014-06-23 09:46:49
【问题描述】:
public interface ICloneable<T>
{
T Clone();
}
public Foo: ICloneable<Foo>
{
public Foo Clone()
{
//blah
}
}
有没有办法将T 限制为实现接口的类型? (在这种情况下为Foo)。最好强制任何实现 ICloneable 的东西返回它自己的实例,而不是它喜欢的任何随机类型。
【问题讨论】:
-
当你实现
ICloneable<Foo>时,你必须返回一个Foo或者一个派生的。我在这里错过了什么吗? -
@YuvalItzchakov 我相信重点是
Foo可以很容易地: ICloneable<Customer> -
哦,我明白了。感谢@MarcGravell 的澄清
-
没有。重点是什么?你能告诉我使用那个接口的代码吗?
标签: c# generics interface generic-constraints