Требуется помощь с универсальными типами - тип не может использоваться в качестве параметра типа - PullRequest
2 голосов
/ 06 января 2012

У меня возникла небольшая проблема с дизайном моего класса, и у меня возникли проблемы с этим. Я искал в интернете безрезультатно, я надеюсь, что кто-то здесь будет достаточно любезен, чтобы указать мне правильное направление. Я выложил весь код, так что теоретически должен быть в состоянии сделать простое копирование и вставку в VS и визуализировать ошибку.

Заранее спасибо, Онам.

Полная ошибка: Тип «Заявитель» нельзя использовать в качестве параметра типа «Т» в универсальном типе или методе «Персона». Не существует неявного преобразования ссылок из 'Complainant' в 'ObjectFactory'.

* * 1010

1 Ответ

1 голос
/ 06 января 2012

Я не уверен на 100%, является ли это причиной, но вы должны поддерживать общие ограничения параметров для класса Person<T>. Так что добавьте where T : new() к классу Person<T>.

EDIT

После компиляции вашего кода я получаю ошибку:

Ошибка 1 'T' должна быть неабстрактного типа с открытым конструктором без параметров, чтобы использовать его в качестве параметра 'T' в универсальном типе или методе 'Reflection.ObjectFactory' SomeClass.cs 67 18 Reflection

Эта ошибка решается добавлением пункта where, о котором я упоминал выше. После этого я не получаю ошибок компиляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...