The analyzer has detected two 'if' statements with identical conditions following each other. This code is either redundant or incorrect.
Consider the following example:
public void Logging(string S_1, string S_2)
{
if (!String.IsNullOrEmpty(S_1))
Print(S_1);
if (!String.IsNullOrEmpty(S_1))
Print(S_2);
}
There is an error in the second condition, where the 'S_1' variable is checked for the second time whereas it is variable 'S_2' that should be checked instead.
This is what the correct version of the code looks like:
public void Logging(string S_1, string S_2)
{
if (!String.IsNullOrEmpty(S_1))
Print(S_1);
if (!String.IsNullOrEmpty(S_2))
Print(S_2);
}
This diagnostic does not always point out a bug; often, it deals with just redundant code:
public void Logging2(bool toFile, string S_1, string S_2)
{
if(toFile)
Print(S_1);
if (toFile)
Print(S_2);
}
This code is correct but somewhat inefficient since it checks one and the same variable twice. We suggest rewriting it as follows:
public void Logging2(bool toFile, string S_1, string S_2)
{
if(toFile)
{
Print(S_1);
Print(S_2);
}
}
You can look at examples of errors detected by the V3029 diagnostic. |