下面声明了一些数值型变量:
short s; int i; uint ui; long l; double d; demical m;
度分析下面哪些转换是正确的,哪些是错误的:
s = ui; i =ui; 
s =l; l = s; 
m = d; d = m; 
l = d; m = i;
大家都是怎么样回答的?

解决方案 »

  1.   

    错:
    s = ui;
    i = ui;
    s = l;
    m = d;
    d = m;
    l = d;
      

  2.   

    s=l是错的,l=s可以。
    可以隐式转换~其它的不记得存放字节数!
      

  3.   


                s = ui; //错误 无法将类型“uint”隐式转换为“short”
                i = ui; //错误 无法将类型“uint”隐式转换为“int”
                s = l; //错误  无法将类型“long”隐式转换为“short”
                l = s; //正确
                m = d; //错误  无法将类型“double”隐式转换为“decimal”
                d = m; //错误  无法将类型“decimal”隐式转换为“double”
                l = d; //错误  无法将类型“double”隐式转换为“long”
                m = i; //正确
      

  4.   

    请参考 msdn 上的下面这两个类型转换表:http://msdn.microsoft.com/zh-cn/library/y5b434w4.aspx
    隐式数值转换表(C# 参考)http://msdn.microsoft.com/zh-cn/library/yht2cx7b.aspx
    显式数值转换表(C# 参考)
      

  5.   

    试一下
    错误:
    s = ui; i =ui; 
    s =l; d = m;l = d;
    正确:
    l = s; 
    m = d; 
    m = i;