考虑以下几点:继承中的循环泛型 - 为什么它能够工作?
public class EntityBase<TEntity>
{
public virtual void DoSomethingWhereINeedToKnowAboutTheEntityType()
{
}
}
public class PersonEntity : EntityBase<PersonEntity>
{
public override void DoSomethingWhereINeedToKnowAboutTheEntityType()
{
}
}
我加入到这个代码并运行它和它的工作好,但我很惊讶,我可以继承一个类谁的定义是基于继承类。
当我尝试它时,我期待它不要编译,或者一旦实际调用失败。
你可以做一个接口类似的东西:
public interface IEntityBase<TEntity>
{}
public class PersonEntity : IEntityBase<PersonEntity>
{}
其实我已经转换我的代码从以前的版本,使用的界面,但我仍然好奇,为什么这个工程。
请注意,当您在对象上实现IComparable和IEquatable 时,您一直都在执行此操作。 –
2012-08-17 12:19:27
@FishBasketGordo。 TY编辑 - 混合我的VB和C#! – 2012-08-17 12:19:35