以下のようなコードがあります。List<int>();}List<int>のような具象クラスに対しては暗黙な型変換は期待通りの結果になるのですが、IList<int>のようなインタフェースに対してはコンパイルエラーになってしまい、期待通りの結果になりません。IList<int>に限らず自分で適当に定義したインタフェース型に対しても、インタフェース型からHoge<インタフェース型>への暗黙な型変換でコンパイルエラーが出てしまいます。どなたか解決策をご教授願えないでしょうか?ついでに、コンパイルエラーになってしまう理由も教えていただけるとうれしいです。