为什么布尔值不抛出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