C# 使用;“部分”;关于泛型类

C# 使用;“部分”;关于泛型类,c#,generics,partial-classes,C#,Generics,Partial Classes,我正在使用一个名为ViewModelCollection的泛型类,它处理ViewModels列表,并提供标准的add()和delete()命令 现在,我想知道是否可以使用某个ViewModel的partial构造来“扩展”这个类,比如说,CarViewModel 这样的事情可能吗 partial class ViewModelCollection<BaseViewModel> { ... some command and list stuff ... } partial c

我正在使用一个名为
ViewModelCollection
的泛型类,它处理ViewModels列表,并提供标准的
add()
delete()
命令

现在,我想知道是否可以使用某个ViewModel的
partial
构造来“扩展”这个类,比如说,
CarViewModel

这样的事情可能吗

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

partial class ViewModelCollection<CarViewModel>
{
    ... special commands for car view model
}
部分类ViewModelCollection
{
…一些命令和列表内容。。。
}
部分类ViewModelCollection
{
…用于汽车视图模型的特殊命令
}

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

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

public类viewmodel集合,其中T:BaseViewModel
{
//方法
}
公共类CarViewModelCollection:ViewModelCollection
{
//具体方法
}

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

谢谢您的回答。我希望我不必使用派生。我的应用程序中的视图模型部分是生成的,因此现在我必须在进行派生之前对生成器进行一些更改:-(
public class ViewModelCollection<T> where T: BaseViewModel
{
   //methods
}

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