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

是否可以简化C#中的嵌套泛型?

如何解决《是否可以简化C#中的嵌套泛型?》经验,为你挑选了0个好方法。

我喜欢C#中的泛型,但有时与它们一起工作会变得有点复杂.下面的问题我时不时地遇到.有没有办法让这个场景更简单?我看不出怎么样,但我希望有人可以:)

给出三个基类:

public abstract class Inner
{
}

public abstract class Outer
    where T : Inner
{
}

public abstract class Handler
    where TOuter : Outer
    where TInner : Inner
{
    public abstract void SetValue(TInner value);
}

还有一些简单的实现:

public class In : Inner
{
}

public class Out : Outer
{
}

public class HandleOut : Handler
{
    public override void SetValue(In value) { }
}

现在我的问题是:For HandleOut,类型TInner是由"Out"类型给出的,那么是否有任何方法可以简化HandleOut类似的定义public class HandleOut : Handler并仍然能够使用内部类型作为参数SetValue

这是一个非常简单的例子,但我有时在定义中得到一长串泛型类型,通常所有这些类型都可以从第一种类型中逻辑推导出来.我有什么诡计吗?

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