我正在研究约瑟夫·阿尔巴哈里(Joseph Albahari)和本·阿尔巴哈里(Ben Albahari)撰写的C#5.0中的拳击和拆箱主题。版权所有2012 Joseph Albahari和Ben Albahari,978-1-449-32010-2,但我需要扩展知识的深处,因此我找到了MSDN文章:Boxing and Unboxing(C#编程指南),在其中找到了此示例代码(显然与主题无关):
Console.WriteLine (String.Concat("Answer", 42, true));
执行后返回:
Answer42True
为什么使用文字“ true”会发生这种情况(如果使用“ false”会发生相同的情况)?
执行测试。
提前致谢。
出于示例原因,如果您尝试String.Concat()
在mscorlib.dll中反编译方法,您将获得类似以下内容的信息
for (int index = 0; index < args.Length; ++index)
{
object obj = args[index];
values[index] = obj == null ? string.Empty : obj.ToString(); //which will call the `ToString()` of `boolean struct`
}
ToString()
默认情况下,该string.Concat
方法调用的方法是这样的
public override string ToString()
{
return !this ? "False" : "True";
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句