Why in Boolean type there are two fields with the same value?
internal const int True = 1;
internal const int False = 0;
internal const string TrueLiteral = "True";
internal const string FalseLiteral = "False";
and
public static readonly string TrueString;
public static readonly string FalseString;
static Boolean()
{
TrueString = "True";
FalseString = "False";
}
in reflector generated code, methods don't use those strings but:
public string ToString(IFormatProvider provider)
{
if (!this)
{
return "False";
}
return "True";
}
would't it be better to use those const values?
EDIT: in CIL there is no difference between using const strings and instance strings.
So when I declare a private const string = "a", wherever in the application "a" is used, Jitter uses const value, or is it only in const string's scope?