== Why is this an issue?

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

[source,csharp]
----
public partial class MyClass // Noncompliant
{
  public virtual void Method()
  {
  }
}

public sealed class MyOtherClass : MyClass
{
  public sealed override void Method() // Noncompliant
  {
  }
}
----

=== Compliant solution

[source,csharp]
----
public class MyClass
{
  public virtual void Method()
  {
  }
}

public sealed class MyOtherClass : MyClass
{
  public override void Method()
  {
  }
}
----

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::message.adoc[]

include::highlighting.adoc[]

'''
== Comments And Links
(visible only on this page)

include::comments-and-links.adoc[]
endif::env-github,rspecator-view[]
