コンパイラ エラー CS0311
更新 : 2007 年 11 月
エラー メッセージ
型 '型 1' はジェネリック型またはメソッド '<名前>' 内で型パラメータ 'T' として使用できません。'型 1' から '型 2' への暗黙的な参照変換がありません。
ジェネリック型パラメータに制約を適用する場合は、具象型の引数から制約の型への暗黙的な ID 変換または参照変換が必要です。
このエラーを解決するには
使用している引数を変更してクラスを作成します。
クラスがある場合は、制約またはその他の操作を削除し、暗黙的な参照変換または 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 への暗黙的な数値変換が、ジェネリック型パラメータに適合しているかどうかを確認してください。