Why is this an issue?
Changing an inherited member to private
will not prevent access to the base class implementation.
This rule raises an issue when a private
method in an unsealed type has a signature that is identical to a public
method
declared in a base type.
Noncompliant code example
using System;
namespace MyLibrary
{
public class Foo
{
public void SomeMethod(int count) { }
}
public class Bar:Foo
{
private void SomeMethod(int count) { } // Noncompliant
}
}
Compliant solution
using System;
namespace MyLibrary
{
public class Foo
{
public void SomeMethod(int count) { }
}
public sealed class Bar : Foo
{
private void SomeMethod(int count) { }
}
}