在泛型类上使用“partial”

时间:2011-04-16 23:16:29

标签: c# generics partial-classes

嘿伙计们,
我正在使用名为ViewModelCollection<BaseViewModel>的泛型类,它处理ViewModel列表并提供标准add()delete()命令。

现在我想知道我是否可以使用partial构造为某个ViewModel“扩展”此类,其名称为CarViewModel

这样的事情可能吗?

partial class ViewModelCollection<BaseViewModel>
{
    ... some command and list stuff ...
}

partial class ViewModelCollection<CarViewModel>
{
    ... special commands for car view model
}

3 个答案:

答案 0 :(得分:10)

不,你不能,partial只是将类定义拆分为多个文件,定义必须相同。您需要从ViewModelCollection<T>

派生
public class ViewModelCollection<T> where T: BaseViewModel
{
   //methods
}

public class CarViewModelCollection : ViewModelCollection<CarVieModel>
{
  //specific methods
}

答案 1 :(得分:1)

partial仅用于跨多个源文件拆分类。类定义本身必须相同。

答案 2 :(得分:0)

添加部分方法并创建一个接口,然后可以约束泛型以使用该接口并处理定义的那些方法。