byte a=20;
byte sum;
sum=(Byte)(a+50);
这是一个正确的写法,我的目的是求一个byte类型的数和50的和!我们知道,在C#中,字面值50会被系统默认为一个int类型的数。
如果把上面程序的第三行换成下面的表达方式:
sum=a+Convert.ToByte(50); 或者   sum=a+(Byte)(50);
编译器就会显示错误:无法将类型“int”隐式转换为“byte”。我总觉得,这是显示类型转换吧,而且也说得通啊,为何会出错呢?

解决方案 »

  1.   

    to 我总觉得,这是显示类型转换吧,而且也说得通啊,为何会出错呢?首先你要确认byte是否支持加法运算。在C#中,byte是不支持加法运算的。
    而byte可以隐式转换int,因此对于byte+byte操作,系统会默认转换成int+int操作,所以计算的结果是int类型,这样来说你的方法一可行,而方法二以及三不行。