Есть следующие 4 объекта объявлены:Generics & Inheritance: Что я здесь делаю неправильно?
abstract class AConfigAction {}
abstract class APlugin<ConfigActionType> where ConfigActionType :AConfigAction {}
class AppExecuteConfigAction : AConfigAction {}
class AppExecutePlugin : APlugin<AppExecuteConfigAction>{}
- Все классы являются общедоступными. Для простоты тела были удалены.
Почему это не может быть преобразовано?
_plugins = new List<APlugin<AConfigAction>>();
_plugins.Add(new AppExecutePlugin()); <--- Error
не может конвертировать из 'AppExecutePlugin' в '' APlugin
Полное сообщение об ошибке:
Ошибка 1 Лучший перегружен матч метод «System.Collections .Generic.List> .Add (EnvironmentSwitcher.Model.ConfigAction.APlugin) 'имеет некоторые недопустимые аргументы R: \ projects \ EnvironmentSwitcher \ Environmen tSwitcher \ Вид \ ConfigurationActionManagerForm.cs 35
Ошибка 2 Аргумент '1': не удается преобразовать из 'EnvironmentSwitcher.Model.ConfigAction.AppExecute.AppExecutePlugin' в R 'EnvironmentSwitcher.Model.ConfigAction.APlugin': \ Projects \ EnvironmentSwitcher \ EnvironmentSwitcher \ View \ ConfigurationActionManagerForm.cs 35
+1 для приятного примера! – Odys
Хорошая идея с аналогией в клетке ... :) – Lucero
Если 'Cage' является абстрактным классом, а не 'class AnimalCage: Cage {}' существует, как вы можете называть 'InsertIntoCage' на' firstCage'? –
comecme