Как сделать обобщенный тип c, чтобы он всегда был типизированным списком c? - PullRequest
1 голос
/ 19 марта 2020

У меня есть класс, который наследуется от другого класса

public abstract class BaseMultiSelect<TValue, Item> : BaseSelect<TValue, Item>        
{
    //...
}

Но внутри BaseMultiSelect Я хочу, чтобы TValue всегда было List<T>, поэтому TValue на BaseSelect будет всегда быть List.

Как я могу это сделать? Я попытался добавить ограничения типа, но безуспешно. Это вообще возможно?

1 Ответ

4 голосов
/ 19 марта 2020

Если TValue всегда должен быть одного типа, не передавайте его BaseMultiSelect в качестве параметра типа. Вы все еще можете указать его для BaseSelect, не указав его в параметрах типа для BaseMultiSelect.

public abstract class BaseMultiSelect<T, Item> : BaseSelect<List<T>, Item>        
{
    //...
}

или

public abstract class BaseMultiSelect<Item> : BaseSelect<List<Item>, Item>        
{
    //...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...