C# Error
CS0706 – Invalid constraint type. A type used as a constraint must be an interface, a non-sealed class or a type parameter.
Reason for the Error & Solution
Invalid constraint type. A type used as a constraint must be an interface, a non-sealed class or a type parameter.
This error occurs when an invalid construct is used in a constraint clause. To avoid this error, use an interface or non-sealed class instead of the construct that caused the error.
Example
The following sample generates CS0706.
// CS0706.cs
// compile with: /target:library
class A {}
class C<T> where T : int[] {} // CS0706
class D<T> where T : A {} // OK