我前几天看到了一段将布尔值转换为相应的"Yes"/"No"值的代码片段:
CDbl(True).ToString("Yes;Yes;No")
代码能够正常工作,但我想知道它是如何工作的,而我在 ToString() 的 MSDN 文档 中没有找到答案。有人可以解释一下吗?
我前几天看到了一段将布尔值转换为相应的"Yes"/"No"值的代码片段:
CDbl(True).ToString("Yes;Yes;No")
代码能够正常工作,但我想知道它是如何工作的,而我在 ToString() 的 MSDN 文档 中没有找到答案。Steve-X的String.Format文档是我迄今为止见过的最好的:Steve-X ToString()
我知道你要求的是“ToString”,但ToString取决于你调用的实现(即DateTime.ToString(),decimal.ToString等)。
如果你真的对它的工作原理感兴趣,可以打开反编译器并查看代码。
public static double ToDouble(bool value)
{
return (value ? ((double) 1) : ((double) 0));
}
因此,如果值为true,则返回1,如果值为false,则返回0。此时,根据@tvanfosson(以及随后的@Joel Coehoorn)所述的部分映射规则适用。