在generics类上使用“partial”

大家好,
我正在使用一个名为ViewModelCollection的generics类,它处理ViewModel列表并提供标准的add()delete()命令。

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

这样的事情可能吗?

 partial class ViewModelCollection { ... some command and list stuff ... } partial class ViewModelCollection { ... special commands for car view model } 

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

 public class ViewModelCollection where T: BaseViewModel { //methods } public class CarViewModelCollection : ViewModelCollection { //specific methods } 

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

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