Skip to content

Commit

Permalink
S3398: Add C# description (#1572)
Browse files Browse the repository at this point in the history
* Add C# rule description

* Fix links
  • Loading branch information
zsolt-kolbay-sonarsource committed Mar 2, 2023
1 parent 91e637c commit bb5403e
Showing 1 changed file with 49 additions and 2 deletions.
51 changes: 49 additions & 2 deletions rules/S3398/csharp/rule.adoc
@@ -1,4 +1,51 @@
include::../rule.adoc[]
When a ``private static`` method is only invoked by a nested class, there's no reason not to move it into that class. It will still have the same access to the outer class' static members, but the outer class will be clearer and less cluttered.

== Noncompliant Code Example

[source,csharp]
----
public class Outer
{
private const int base = 42;
private static void Print(int num) // Noncompliant - static method is only used by the nested class, should be moved there
{
Console.WriteLine(num + base);
}
public class Nested
{
public void SomeMethod()
{
Outer.Print(1);
}
}
}
----

== Compliant Solution

[source,csharp]
----
public class Outer
{
private const int base = 42;
public class Nested
{
public void SomeMethod()
{
Print(1);
}
private static void Print(int num)
{
Console.WriteLine(num + base);
}
}
}
----

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

'''
Expand All @@ -9,4 +56,4 @@ include::../message.adoc[]

include::../highlighting.adoc[]

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

0 comments on commit bb5403e

Please sign in to comment.