天天看点

C#中bool与Boolean有什么区别?string和String区别?

1. bool是基本值类型,Boolean 是对象.

2. bool是Boolean的别名.bool是C#中的,Boolean是.net Framework中的。

出于对Boolean的好奇,我用Reflector反汇编了下mscorlib.dll,得到Boolean的源代码,看到了下面的内容:

public struct Boolean : IComparable, IConvertible, IComparable<bool>, IEquatable<bool>
    {
        private bool m_value;
        //省略其他成员的定义.....
     }

MSDN中解释bool与Boolean的关系是:“bool 关键字是 System.Boolean 的别名”.实际使用无任何差别。它们的成员也是一样的。
最后总结:bool就像你的乳名,你爹妈以及你们内部所属成员都认识,Boolean就像你的学名。大家都认识。不过不管按照学名还是乳名称呼你,最终的目的是一样的,还是你这个人。

对于String和string的关系也是如此。