可以说我有这样的代码:

interface IObject
{
     IObject GetSomeObject();
}

public class ObjectClass : IObject
{
     IObject GetSomeObject()
     {
     // method implementation here
     }
}


有什么办法让我使类GetSomeObject()ObjectClass方法使return ObjectClass,而不是IObject吗?

我知道我可以这样使用它:

ObjectClass object1= someObject1.GetSomeObject() as ObjectClass;


但是我想要实现的是:

public class ObjectClass : IObject
{
     ObjectClass GetSomeObject()
     {
     // method implementation here
     }
}


有可能这样吗?

最佳答案

您可以使用泛型:

interface IObject<T> where T : IObject<T>
{
    T GetSomeObject();
}

public class ObjectClass : IObject<ObjectClass> { ... }

10-06 07:19