为什么布尔值不抛出StackOverflowException?
我在http://referencesource.microsoft.com/#mscorlib/system/boolean.cs上找到布尔源代码:
public struct Boolean
{
...
private bool m_value;
...
}
为什么它不抛出StackOverflowException?
这种工作原因是因为bool和System.Boolean类型实际上是不同的。
原始布尔类型是一个内置类型,存储1个字节。
System.Boolean类型用作基元类型的对象包装,并实现IComparable和IConvertable接口。 这个包装器被实现为紧密地表示原始类型,因此它们可能在逻辑上可以互换。
作为构建在Common Type System上的.NET Framework用户,我们简单地将它们说成是相同的,因为在我们的例子中,C#编译器将“bool”关键字视为您实现的System.Boolean类型的别名在mscorlib.dll中。
链接地址: http://www.djcxy.com/p/87645.html上一篇: Why does Boolean not throw a StackOverflowException?
下一篇: change soft keys background from black to transparent in android app