When a System.Globalization.CultureInfo or IFormatProvider object is not supplied, the default value that is supplied by
the overloaded member might not have the effect that you want in all locales.
You should supply culture-specific information according to the following guidelines:
CultureInfo.CurrentCulture. CultureInfo.InvariantCulture. This rule raises an issue when a method or constructor calls one or more members that have overloads that accept a
System.IFormatProvider parameter, and the method or constructor does not call the overload that takes the IFormatProvider
parameter. This rule ignores calls to .NET Framework methods that are documented as ignoring the IFormatProvider parameter as well as the
following methods:
Activator.CreateInstance ResourceManager.GetObject ResourceManager.GetString
using System;
namespace MyLibrary
{
public class Foo
{
public void Bar(String string1)
{
if(string.Compare(string1, string2, false) == 0) // Noncompliant
{
Console.WriteLine(string3.ToLower()); // Noncompliant
}
}
}
}
using System;
using System.Globalization;
namespace MyLibrary
{
public class Foo
{
public void Bar(String string1, String string2, String string3)
{
if(string.Compare(string1, string2, false,
CultureInfo.InvariantCulture) == 0)
{
Console.WriteLine(string3.ToLower(CultureInfo.CurrentCulture));
}
}
}
}
This rule will not raise an issue when the overload is marked as obsolete.