広く実装されているインターフェイスがあり、特定のインターフェイスを持つIListがあります。たくさんのテキストの代わりに、ここを見てください:
interface ILanguage
{
IList<ITriggers> CompletionTriggers { get; set; }
}
public class Language : ILanguage
{
public Constructor()
{
CompletionTriggers = new List<CompletionTrigger>();
}
}
これは基本的に私がやろうとしていることです。「トリガー」は、いくつかのタイプによって実装されるインターフェースのメンバーです。ただし、各タイプには、カスタムITrigger実装とListが必要です(非常に便利なようにIListを使用しています)。
エラーには「キャストがありませんか?」と表示されますが、どちらもIListとITrigger(ListとCompletionTrigger)の両方を直接実装するオブジェクトであるため、奇妙なことに気付きます。
これは簡単なことだと思いますが、なぜこのように動作するのかについてのいくつかのポイントは高く評価されています!