【发布时间】:2010-04-06 10:53:12
【问题描述】:
为什么在布尔类型中有两个值相同的字段?
internal const int True = 1;
internal const int False = 0;
internal const string TrueLiteral = "True";
internal const string FalseLiteral = "False";
和
public static readonly string TrueString;
public static readonly string FalseString;
static Boolean()
{
TrueString = "True";
FalseString = "False";
}
在反射器生成的代码中,方法不使用这些字符串,但是:
public string ToString(IFormatProvider provider)
{
if (!this)
{
return "False";
}
return "True";
}
使用这些 const 值不是更好吗?
编辑:在 CIL 中使用 const 字符串和实例字符串没有区别。
所以当我声明一个私有的 const string = "a" 时,在应用程序中使用 "a" 的任何地方,Jitter 都使用 const 值,还是只在 const string 的范围内?
【问题讨论】:
标签: .net refactoring types boolean