指定受约束的泛型类是子类

本文关键字:子类 泛型类 受约束 | 更新日期: 2023-09-27 18:32:07

我有这个类定义:

public abstract class AbstractListViewModel<T>  : AbstractWorkspaceViewModel

所以我有一个名为 AbstractListViewModel 的类,它有一个泛型类型,它是 AbstractWorkspaceViewModel 的子类。

但是,我需要将T限制为仅是AbstractWorkspaceViewModel的子类。我尝试了以下方法:

public abstract class AbstractListViewModel<T> where T :
    AbstractWorkspaceViewModel, : AbstractWorkspaceViewModel
public abstract class AbstractListViewModel<T> where T :
    AbstractWorkspaceViewModel : AbstractWorkspaceViewModel

但是此语法无效。

所以在这里我试图说"一个名为AbstractListViewModel的类,它是AbstractWorkspaceViewModel的子类,并且具有泛型类型,也是AbstractWorkspaceViewModel的子类。

我该如何定义?

指定受约束的泛型类是子类

这是约束的顺序。试试这个:

public abstract class AbstractListViewModel<T>  : AbstractWorkspaceViewModel
    where T : AbstractWorkspaceViewModel

你想要这个:

public abstract class AbstractListViewModel<T> : AbstractWorkspaceViewModel
    where T : AbstractWorkspaceViewModel
public abstract class AbstractListViewModel<T> : AbstractWorkspaceViewModel where T : AbstractWorkspaceViewModel