2012-04-25 2 views
1

У меня есть такое определение класса:Задание того, что ограниченный общий класс является подклассом?

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.

Как определить это?

+0

Ваши имена классов невероятно запутывают. – asawyer

+0

@asawyer Я, вероятно, должен был изменить их для вопроса. Они имеют смысл в контексте. – Oliver

ответ

6

это упорядочение вашего ограничения Попробуйте это:.

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

Вы хотите:

public abstract class AbstractListViewModel<T> : AbstractWorkspaceViewModel 
    where T : AbstractWorkspaceViewModel 
2
public abstract class AbstractListViewModel<T> : AbstractWorkspaceViewModel where T : AbstractWorkspaceViewModel 
Смежные вопросы