C# Windows Формы подкласса generi c Параметр Форма - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть форма windows, называемая "Selektor", с элементом представления сетки данных и некоторыми элементами управления в строке меню. Заголовок класса:

Selektor<T> : Form where T : Table

Для разных подклассов таблиц мне нужны разные кнопки в строке меню. Я думал о создании подкласса Selektor, где я могу добавить разные строки меню для разных подклассов таблицы. По какой-то причине мой подкласс с заголовком

public partial class Form1<T> : Selektor<T>

Компилятор говорит мне: «Тип T нельзя использовать в качестве параметра типа T в типе generi c или методе« Селектор ».

Что я делаю не так?

1 Ответ

0 голосов
/ 20 февраля 2020

У вас есть ограничение на тип T для класса Selektor:

Selektor<T> : Form where T : Table

, но в этом объявлении вы не используете то же ограничение:

public partial class Form1<T> : Selektor<T>

, как если бы каждый generi c type T подходит для Form1, но у Selektor не может быть T, не полученного из Table. С этим определением можно написать что-то вроде:

new Form1<Other>()

, передавая базовому классу Selektor тип, который он не может принять.

Вы должны использовать:

public partial class Form1<T> : Selektor<T> where T : Table
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...