我正在使用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>
{
}