Поделиться через


Ошибка компилятора CS0080

Обновлен: Ноябрь 2007

Сообщение об ошибке

Ограничения не разрешены в объявлениях, не являющихся универсальными
Constraints are not allowed on non-generic declarations

Обнаруженный синтаксис можно использовать только в универсальных объявлениях для применения ограничений к параметрам-типам. Дополнительные сведения см. в разделе Универсальные шаблоны (Руководство по программированию на C#).

В следующем примере создается ошибка CS0080, поскольку класс "MyClass" не является универсальным классом, а метода "Foo" — универсальным методом.

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()
        {
        }
    }
}