'<expression>' cannot be used as a type constraint
Updated: July 20, 2015
For the latest documentation on Visual Studio 2017, see Visual Studio 2017 Documentation.
A constraint list includes an expression that does not represent a valid constraint on a type parameter.
A constraint list imposes requirements on the type argument passed to the type parameter. You can specify the following requirements in any combination:
The type argument must implement one or more interfaces
The type argument must inherit from at most one class
The type argument must expose a parameterless constructor that the creating code can access (include the
If you do not include any specific class or interface in the constraint list, you can impose a more general requirement by specifying one of the following:
The type argument must be a value type (include the
The type argument must be a reference type (include the
You cannot specify both
Class for the same type parameter, and you cannot specify either one more than once.
Error ID: BC32061
Verify that the expression and its elements are spelled correctly.
If the expression does not qualify for the preceding list of requirements, remove it from the constraint list.
If the expression refers to an interface or class, verify that the compiler has access to that interface or class. You might need to qualify its name, and you might need to add a reference to your project. For more information, see "References to Projects" in References to Declared Elements.