当我有一个简单的类和接口(interface)时,我可以这样做:
public class Foo : IFoo
{
public IFoo Instance()
{
return this;
}
}
当两者都是泛型时,有没有办法做同样的事情?
public class Base<T, TI>
{
public TI Instance()
{
return this; // Nope
return (T) this; // Nope
}
}
public class Foo : Base<Foo, IFoo>
{
}
但是我尝试这样做,却收到“无法隐式转换类型”错误。
最佳答案
C# 不支持这个。
你能做的最好的就是
public class Base<T, TI> where T : Base<T, TI>, TI
{
public TI Instance()
{
return (TI) (object) this; // Yep
}
}
关于c# - 如何返回具有泛型类型的类实例作为具有泛型类型的接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49160019/