如何封装一个明显或相关的泛型

时间:2014-03-27 09:28:08

标签: c# generics

上下文/我的代码

请先查看以下代码段。

我的第一个界面

public interface ISystemUser<T>
{
    T GetIdentifiedBy();
    ...omitted code...
}

我的班级

public class AccessObject<U,V,W> where U : ISystemUser<V>
{
    public U ContextUser { get; private set; }
    public IOType IOType { get; private set; }
    public List<W> RequestedObjects { get; private set; }

    ...omitted code...
}

问题

现在我遇到了以下一行的麻烦

 public class AccessObject<U,V,T> where U : ISystemUser<V>

问题是,我想在 AccessObject 的泛型中指定我的类型 U U 必须是实现的类界面 ISystemUser

对我来说,在AccessObject类定义中指定 V 是完全没必要的。因为我希望 U 成为 ISystemUser 实现,所以不要关心在 ISystemUser 定义中选择哪个泛型,因为我不使用我的代码 AccessObject 中的泛型 V

问题

所以基本上,没有办法让结果更容易使用,例如下面的代码片段?

public class AccessObject<U,W> where U : ISystemUser

因为 U 会自动指示 V 的类型,不是吗?

0 个答案:

没有答案