C# Compiler Error
CS0506 – ‘function1’ : cannot override inherited member ‘function2’ because it is not marked “virtual”, “abstract”, or “override”
Reason for the Error
You’ll get this error in your C# code when you attempt to override a member that is not explicitly marked as virtual, abstract, or override in the base class.
For example, let’s try to compile the below C# code snippet.
using System;
namespace DeveloperPublishNamespace
{
public class BaseClass
{
public int Id { get; set; }
}
public class ChildClass : BaseClass
{
public override int Id { get; set; }
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("No Error");
}
}
}You’ll receive the error code CS0505 because the C# compiler has detected that you are overriding a property Id that is not marked as either abstract or virtual in the base class.
Error CS0506 ‘ChildClass.Id’: cannot override inherited member ‘BaseClass.Id’ because it is not marked virtual, abstract, or override DeveloperPublish C:\Users\Senthil\source\repos\ConsoleApp4\ConsoleApp4\Program.cs 12 Active

Solution
You can fix this error in your C# program by marking the member as virtual or abstract in the base class as shown below.
using System;
namespace DeveloperPublishNamespace
{
public class BaseClass
{
public virtual int Id { get; set; }
}
public class ChildClass : BaseClass
{
// This returns the error CS0505
public override int Id { get; set; }
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("No Error");
}
}
}