コンパイラ エラー CS0311

更新 : 2007 年 11 月

エラー メッセージ

型 '型 1' はジェネリック型またはメソッド '<名前>' 内で型パラメータ 'T' として使用できません。'型 1' から '型 2' への暗黙的な参照変換がありません。

ジェネリック型パラメータに制約を適用する場合は、具象型の引数から制約の型への暗黙的な ID 変換または参照変換が必要です。

このエラーを解決するには

  1. 使用している引数を変更してクラスを作成します。

  2. クラスがある場合は、制約またはその他の操作を削除し、暗黙的な参照変換または ID 変換を有効にできます。たとえば、最初の型から 2 番目の型を継承できます。

使用例

// cs0311.cs
class B{}
class C{}
class Test<T> where T : C
{ }

class Program
{
    static void Main()
    {
        Test<B> test = new Test<B>(); //CS0311
    }
}

値型引数を使用するときにこのエラーが発生する場合、たとえば、short から int への暗黙的な数値変換が、ジェネリック型パラメータに適合しているかどうかを確認してください。

参照

参照

型パラメータの制約 (C# プログラミング ガイド)