加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#我可以在返回不同泛型类的非泛型类中创建泛型方法或属性吗?

发布时间:2020-12-16 01:41:26 所属栏目:百科 来源:网络整理
导读:我有一个抽象的泛型类.我想在那里定义一个方法,所以我不必在所有派生类中都这样做. 基本上我需要根据泛型类的类型来获取一个存储库类. 我通过另一个非泛型的类获取repoistories. 如何让该类根据泛型调用者具有的类型返回通用存储库? 我希望这样的事情. publ
我有一个抽象的泛型类.我想在那里定义一个方法,所以我不必在所有派生类中都这样做.

基本上我需要根据泛型类的类型来获取一个存储库类.

我通过另一个非泛型的类获取repoistories.

如何让该类根据泛型调用者具有的类型返回通用存储库?

我希望这样的事情.

public IRepository<T> Table<T>()
{
    return _container.Resolve<IRepository<T>>();
}

如果它是一个财产,它会更好.

解决方法

我没有看到问题.你可以编写这样编译的代码.这不是你想要的吗?

interface IRepository<T>
{
    T GetData();
}

class Container
{
    private object[] data = null;

    public T Resolve<T>()
    {
        return(T)data.First(t => t.GetType() is T);
    }
}

abstract class Handler<T>
{
    private Container _container;

    public IRepository<T> Table
    {
        get
        {
            return _container.Resolve<IRepository<T>>();
        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读