V3122. Uppercase (lowercase) string is compared with a different lowercase (uppercase) string.
The analyzer detected a comparison of two strings whose characters are in different cases.
Consider the following example:
void Some(string s)
{
if (s.ToUpper() == "abcde")
{
....
}
}
After casting the 's' variable's value to upper case, the resulting string is compared with a string where all the characters are lowercase. As this comparison is always false, this code is incorrect and can be fixed in the following way:
void Some(string s)
{
if (s.ToLower() == "abcde")
{
....
}
}
Consider another example:
void Some()
{
string s = "abcde";
....
if (s.Contains("AbCdE"))
{
....
}
}
While all the characters of the 's' variable's value are lowercase, an attempt is made to check if the string contains a mixed-case substring. Obviously, the 'Contains' method will always return 'false', which also indicates an error.
This diagnostic is classified as:
You can look at examples of errors detected by the V3122 diagnostic. |