は、以下の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
'APlugin' から 'AppExecutePlugin' から変換することはできません
完全なエラーメッセージ:
エラー1にSystem.Collections「の最良のオーバーロードされたメソッドの試合.Generic.List> .Add(EnvironmentSwitcher.Model.ConfigAction.APlugin) 'に無効な引数がいくつかあります。R:\ projects \ EnvironmentSwitcher \ Environmen tSwitcher \ビュー\ ConfigurationActionManagerForm.csは35
エラー2引数が '1': 'EnvironmentSwitcher.Model.ConfigAction.APlugin R' 'にEnvironmentSwitcher.Model.ConfigAction.AppExecute.AppExecutePlugin' から変換することはできません:\プロジェクト\ EnvironmentSwitcher \ EnvironmentSwitcher \ View \ ConfigurationActionManagerForm.cs 35
+1! – Odys
ケージの類推の良いアイデア: – Lucero
'Cage'が抽象クラスで、 'AnimalCage:Cage {}'クラスが存在しない場合、 'firstCage'に' InsertIntoCage'をどのように呼び出すことができますか? –
comecme