rspec/rules/S1144/csharp/rule.adoc

43 lines
1.2 KiB
Plaintext
Raw Normal View History

2021-01-27 13:42:22 +01:00
``++private++`` or ``++internal++`` types or ``++private++`` members that are never executed or referenced are dead code: unnecessary, inoperative code that should be removed. Cleaning out dead code decreases the size of the maintained codebase, making it easier to understand the program and preventing bugs from being introduced.
2020-06-30 12:47:33 +02:00
== Noncompliant Code Example
----
public class Foo
{
private void UnusedPrivateMethod() {...} // Noncompliant
private class UnusedClass {...} // Noncompliant
}
----
== Compliant Solution
----
public class Foo
{
public Foo()
{
UsedPrivateMethod();
}
private void UsedPrivateMethod()
{
var c = new UsedClass();
}
private class UsedClass {...}
}
----
== Exceptions
This rule doesn't raise issues on:
2020-06-30 12:47:33 +02:00
* Empty constructors
* Attributed members
2021-01-27 13:42:22 +01:00
* ``++Main++`` method
* Methods with event handler signature ``++void Foo(object, EventArgs)++`` that are declared in partial class
* Empty serialization constructor on type with ``++System.SerializableAttribute++`` attribute.
* Internals in assemblies that have a ``++System.Runtime.CompilerServices.InternalsVisibleToAttribute++`` attribute.