'Structure' 制約が指定された型パラメータを制約として使用することはできません。

更新 : 2007 年 11 月

Structure 制約が指定された型パラメータが、別の型パラメータの制約として使用されています。

Structure 制約では、型パラメータに渡される型引数が値型であることが要求されます。しかし、値型を実装または継承することはできないため、型パラメータを制約として使用するには他の型パラメータにそれを実装するか、それを継承する必要がありますが、意味がありません。

これが意味を持つのは、両方の型引数の型がまったく同じである場合だけです。そのようなケースでは、ジェネリック型に型パラメータは 1 つしか必要ありません。

このエラーは次のようなステートメントで発生します。

Class c1(Of t1 As Structure, t2 As t1)

t1 に渡される型は値型であることが必要なので、t2 に渡された型は、t1 に渡された型を実装または継承できません。

Error ID: BC32114

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

  • Structure に制限された型パラメータを、他の型パラメータの制約リストから削除します。

  • 両方の型パラメータに同じ値型が必要な場合は、一方の型パラメータにだけジェネリック型を定義します。

参照

概念

Visual Basic におけるジェネリック型

値型と参照型

参照

型リスト

Structure (Visual Basic)