C#中显式转换隐式转换的问题

C#中存在类型转换,如int与double,string与object,string与时间等类型之间互相转换;

类型转换又分为显式转换和隐式转换,隐式转换是指不需要指定转换类型的转换,显式转换则必须指定转换类型。


例1.  int与double,(double表示范围大,且带小数,兼容int)

      

         int  i = 5;

         double d = 6.0;

         //d = i;       //把int类型转换成double,隐式转换

         i = (int)d ;     //把double类型转换成int,必须进行显式转换


例2.  Object 与 string(或其他),Object是所有类的父类


         Object obj = "Object";

          string str = "string";

          //obj = str;  //隐式转换,str本身就是一个Object。子类转换成父类可以进行隐式转换

          str = (string)obj;    //显式转换,Object包含很多,不止string,所以必须指定转换类型。


例3 .  不相关的两个类型之间要显式转换

         如:时间-字符串,数字-字符串,等等


总结:有时需要显式转换,有时不需要,但是任何时候都可以用显式转换。

通俗的说,从小类型向大类型转换时(数字从小范围到大范围;从子类到父类),一般不需要显式转换,相反,则需要显式转换。



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值