C# Compiler Error
CS0507 – ‘function1’ : cannot change access modifiers when overriding ‘access’ inherited member ‘function2’
Reason for the Error
You’ll get this error in your C# code when you attempt to change the access modifier in the method override.
For example, let’s try to compile the below C# code snippet.
using System;
namespace DeveloperPublishNamespace
{
abstract public class BaseClass
{
virtual protected void Method1()
{
}
}
public class ChildClass : BaseClass
{
public override void Method1()
{
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("No Error");
}
}
}You’ll receive the error code CS0507 because the C# compiler has detected that you are overriding the function “Method1” but changing the access modifier to public when overriding.
Error CS0507 ‘ChildClass.Method1()’: cannot change access modifiers when overriding ‘protected’ inherited member ‘BaseClass.Method1()’ DeveloperPublish C:\Users\Senthil\source\repos\ConsoleApp4\ConsoleApp4\Program.cs 13 Active

Solution
You can fix this error in your C# program by making sure that the access modifiers remain the same when overriding the inherited member.
using System;
namespace DeveloperPublishNamespace
{
abstract public class BaseClass
{
virtual protected void Method1()
{
}
}
public class ChildClass : BaseClass
{
protected override void Method1()
{
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("No Error");
}
}
}