C#:使用泛型类的非泛型类未定义

标签 c# generics inheritance

我有一个通用接口(interface)

public interface TheInterface<T> where T : IObject

我还有一个与此接口(interface)一起使用的对象类

public class SomeObject : IObject

然后我有一个实现接口(interface)的类

public class ClassThatWorksWithSomeObject : TheInterface<SomeObject>

这一切都很好。稍后我添加了一个与 TheInterface 类一起工作的类,与他使用的 IObject 版本无关。

public class IDoStuffToInterface
{
    public IDoStuffToInterface(TheInterface<IObject> interface)
    {
         //bla bla
    }
}

问题是我无法在其中传递 ClassThatWorksWithSomeObject,即使它继承自接口(interface)并且它的通用对象继承自 IObject

我想在某些情况下,如果这样做可能会造成伤害,但我想不出有什么。

有没有办法做得更好?

最佳答案

我不知 Prop 体实现方式,你可以试试:

public interface TheInterface<out T> where T : IObject 

如果你使用的是 C#4.0

关于C#:使用泛型类的非泛型类未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5133594/

相关文章:

java - 在没有类型的情况下使用 Java 泛型 - 泛型删除?

swift - Swift 编程语言 - 泛型 - Where 子句的问题

c# - 运算符重载和继承 c#

c# - 使现有的 Windows 窗体可继承

c# - 为什么协变和逆变不支持值类型

c# - 在 ADO.net SQL 中使用事务

c# - GWT 将 header 发送到 c# 后端

c# - DotNetOpenAuth - 如何唯一标识 Google 用户?

c# - 为什么 IList 和 ICollection 的通用对应物不具有相同的方法集?

android - MutableLiveData可以具有子类作为其类型吗?