CS0080 de erro do compilador

Mensagem de erro

Não são permitidas restrições em declarações não genéricas

A sintaxe encontrada só pode ser usada em uma declaração genérica para aplicar restrições ao parâmetro de tipo.Para obter mais informações, consulte Generics (Guia de programação C#) .

O exemplo a seguir gera CS0080 como MyClass não é uma classe genérica e Foo não é um método genérico.

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 Foo() where Foo : new() // CS0080
        //the following line shows an example of correct syntax
        //public void Foo<U>() where U : struct
        {
        }
    }

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