Compiler Error CS0080

Constraints are not allowed on non-generic declarations

The syntax found may only be used in a generic declaration to apply constraints to the type parameter. For more information, see Generics (C# Programming Guide).

The following sample generates CS0080 because MyClass is not a generic class and MyMethod is not a generic method.

namespace MyNamespace
{
    public class MyClass where MyClass : System.IDisposable // CS0080 
    //The following line shows an example of correct syntax.
    //public class MyClass<T> where T : System.IDisposable
    {
        public void MyMethod() where MyMethod : new() // CS0080
        //the following line shows an example of correct syntax
        //public void MyMethod<U>() where U : struct
        {
        }
    }

    public class Program
    {
        public static void Main()
        {
        }
    }
}