有人说是因为C#是强类型的语言,所以要分离?请高手仔细帮忙解释一下。

解决方案 »

  1.   

    意义不一样,bool 值用于表示“真、假”,只有两种状态,而整型可以表示很多状态。
      

  2.   

    这样感觉比较好吧。。至少我刚开始学习的时候是认为分得清楚很好刚开始学习的时候,经常把DOUBLE FLOAT 和INT 什么的弄混
      

  3.   

    -1代表什么?2又代表什么?82342842482344代表什么?当然是越明白无误越好。当已经习惯了之后,再看用int来代表bool,那显得太原始。
      

  4.   

    那就是说C#是为了更清晰的表述Bool 类型才舍弃01而用true false 表示的?
      

  5.   

    true返回真,false返回假 没什么大道理,重点是看你怎么用
      

  6.   

    就我个人的理解说下原因
    1、为了维护,读代码好理解,如果你看到一句代码 A==0 那你该怎么理解?是INT的A的值是否为零?还是BOOL的A的值是不是FALSE?那你还要返回去看A的类型,在读大型程序的时候这不是件好事不是么?0就是0,FALSE就是FALSE,哪怕他们的值一样,甚至可以互相替换,但是他们的意义终归是不一样的。
    2、C#是强类型的,很多时候编译器对类型的比较是很严格的,如果0和FALSE等同了,就会出现很多类型比较时候的问题,这从根本上的影响了C#编译器的执行能力(自己理解的=。=)
    3、不知道LZ用没用过枚举类型?其实枚举类型是一样的,枚举类型里面其实一样可以用INT类型取代,但是为什么要定义枚举类型然后还要花时间打那么多字去给每个类型定义名字?就是了读起来方便,写起来不容易出错,不然还要枚举类型干嘛?全部定义123456789就可以了以上是个人想法
      

  7.   

    因为程序往往会犯这样的错误
    int a=10;
    int b=20;
    if(a=b)//  C/C++没有专门的bool类型,所以编译通过
            //  C#很好,编译器给我报错,所以我们知道,哦,应该是a==b
     ...........