当前位置:  开发笔记 > 编程语言 > 正文

.NET通用方法问题

如何解决《.NET通用方法问题》经验,为你挑选了0个好方法。

我正在尝试掌握.NET Generics的概念,并在我自己的代码中实际使用它们,但我一直遇到问题.

有人可以尝试向我解释为什么以下设置无法编译?

public class ClassA
{
    ClassB b = new ClassB();

    public void MethodA(IRepo repo) where T : ITypeEntity
    {
        b.MethodB(repo);
    }
}

public class ClassB
{
    IRepo repo;

    public void MethodB(IRepo repo)
    {
        this.repo = repo;
    }
}

我收到以下错误:
无法从IRepo <'T>转换为IRepo <'ITypeEntity>

使用IRepo <'DetailType>对象参数调用MethodA,其中DetailType继承自ITypeEntity.

我一直认为这应该编译,因为我将MethodA中的T限制为ITypeEntity类型.

任何想法或反馈都会非常有帮助.

谢谢.

编辑:尼克R有一个很好的建议,但不幸的是在我的背景下,我没有选择制作ClassA Generic.但是ClassB可能会.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有