Unnecessary keywords simply clutter the code and should be removed. Specifically:
partial on type declarations that are completely defined in one place sealed on members of sealed classes unsafe method or block inside construct already marked with unsafe, or when there are no unsafe
constructs in the block checked and unchecked blocks with no integral-type arithmetic operations
public partial class MyClass // Noncompliant
{
public virtual void Method()
{
}
}
public sealed class MyOtherClass : MyClass
{
public sealed override void Method() // Noncompliant
{
}
}
public class MyClass
{
public virtual void Method()
{
}
}
public sealed class MyOtherClass : MyClass
{
public override void Method()
{
}
}