
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
86 lines
1.8 KiB
Plaintext
86 lines
1.8 KiB
Plaintext
== Why is this an issue?
|
||
|
||
There are several reasons for a method not to have a method body:
|
||
|
||
|
||
* It is an unintentional omission, and should be fixed.
|
||
* It is not yet, or never will be, supported. In this case a ``++NotSupportedException++`` should be thrown.
|
||
* The method is an intentionally-blank override. In this case a nested comment should explain the reason for the blank override.
|
||
|
||
=== Noncompliant code example
|
||
|
||
[source,csharp]
|
||
----
|
||
public override void DoSomething()
|
||
{
|
||
}
|
||
|
||
public override void DoSomethingElse()
|
||
{
|
||
}
|
||
----
|
||
|
||
=== Compliant solution
|
||
|
||
[source,csharp]
|
||
----
|
||
public override void DoSomething()
|
||
{
|
||
// Do nothing because of X and Y.
|
||
}
|
||
|
||
public override void DoSomethingElse()
|
||
{
|
||
throw new NotSupportedException();
|
||
}
|
||
----
|
||
|
||
=== Exceptions
|
||
|
||
The following methods are ignored:
|
||
|
||
* empty ``++virtual++`` methods,
|
||
* empty methods that override an ``++abstract++`` method,
|
||
* empty overrides in test assemblies.
|
||
|
||
ifdef::env-github,rspecator-view[]
|
||
|
||
'''
|
||
== Implementation Specification
|
||
(visible only on this page)
|
||
|
||
include::../message.adoc[]
|
||
|
||
'''
|
||
== Comments And Links
|
||
(visible only on this page)
|
||
|
||
=== on 11 Nov 2020, 19:45:36 Andrei Epure wrote:
|
||
\[~nicolas.harraudeau] I believe this rule could also apply to local functions and to property setters, right?
|
||
|
||
|
||
|
||
|
||
----
|
||
public void Method()
|
||
{
|
||
void EmptyLocalFunction {} // Noncompliant
|
||
}
|
||
|
||
public int Property
|
||
{
|
||
set {} // Noncompliant
|
||
}
|
||
{code}
|
||
----
|
||
|
||
=== on 16 Nov 2020, 14:19:07 Nicolas Harraudeau wrote:
|
||
\[~andrei.epure] Yes. We already do it for nested functions in python. I don't see any reason to not do the same for C#.
|
||
|
||
=== on 16 Nov 2020, 17:39:11 Andrei Epure wrote:
|
||
thanks. I opened \https://github.com/SonarSource/sonar-dotnet/issues/3753 for this.
|
||
|
||
include::../comments-and-links.adoc[]
|
||
|
||
endif::env-github,rspecator-view[]
|