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"); } } }