Why is this an issue?
Duplicated string literals make the process of refactoring complex and error-prone, as any change would need to be propagated on all
occurrences.
Exceptions
The following are ignored:
- literals with fewer than 5 characters
- literals matching one of the parameter names
- literals used in attributes
How to fix it
Instead, use constants to replace the duplicated string literals. Constants can be referenced from many places, but only need to be updated in a
single place.
Code examples
Noncompliant code example
public class Foo
{
private string name = "foobar"; // Noncompliant
public string DefaultName { get; } = "foobar"; // Noncompliant
public Foo(string value = "foobar") // Noncompliant
{
var something = value ?? "foobar"; // Noncompliant
}
}
Compliant solution
public class Foo
{
private const string Foobar = "foobar";
private string name = Foobar;
public string DefaultName { get; } = Foobar;
public Foo(string value = Foobar)
{
var something = value ?? Foobar;
}
}