C# Compiler Error
CS0080 – Constraints are not allowed on non-generic declarations
Reason for the Error
You will receive this error when you have used a syntax on a non-generic where it is only supported on a generic class.
For example, try compiling the below code snippet.
namespace DeveloperPublish
{
public class Class1 where Class1 : System.IDisposable
{
}
public class Program
{
public static void Main()
{
}
}
}You will receive the C# compiler error CS0080 as the class Class1 is not a generic class and we are using the keyword “where” when defining the class.
Error CS0080 Constraints are not allowed on non-generic declarations ConsoleApp2 C:\Users\admin\source\repos\ConsoleApp2\ConsoleApp2\Program.cs 3 Active
Solution
To fix the error in the above code, ensure that you use the generic implementation as shown below
namespace DeveloperPublish
{
public class Class1<T> where T : System.IDisposable
{
}
public class Program
{
public static void Main()
{
}
}
}
