C#:简化泛型声明

时间:2017-02-28 22:52:53

标签: c# generics

我正在使用C#中的泛型,我觉得我的类型规范中有冗余信息。

我有一个名为IParameterizedViewModel的接口,它在参数类型上是通用的。我还有另一个抽象类(android活动),它使用那种ViewModel。

public interface IParameterizedViewModel<TParameter> : IBaseViewModel
{
}

abstract class BaseActivity<TViewModel, TParameter> : BaseActivity<TViewModel>
    where TViewModel : IParameterizedViewModel<TParameter>
{
    // Somewhere in here, we use the TParameter type,
    // so it's important to know the type.
}

您可以在此处看到BaseActivity具有通用IParameterizedViewModel类型。我也有类型填充这两个的通用插槽:

public interface IDetailsViewModel : IParameterizedViewModel<Details>
{
}

class DetailsActivity : BaseActivity<IDetailsViewModel, Details>
{
}

现在就是这样:最后一个定义,DetailsActivity对于参数类型Details看起来多余,因为该类型也包含在IDetailsViewModel

我是否有办法删除Details类型,因为它已在IDetailsViewModel类型中指定?

class DetailsActivity : BaseActivity<IDetailsViewModel>
{
}

0 个答案:

没有答案