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
Noncompliant code example
public partial class MyClass // Noncompliant
{
public virtual void Method()
{
}
}
public sealed class MyOtherClass : MyClass
{
public sealed override void Method() // Noncompliant
{
}
}
Compliant solution
public class MyClass
{
public virtual void Method()
{
}
}
public sealed class MyOtherClass : MyClass
{
public override void Method()
{
}
}