CLR数据类型转换

1.隐式转换

       低精度类型向高精度类型转换

        double m = 1;

        常量1 默认是int32的数据类型。

        

      

 

        int m = 1.2;(报错)

        常量1.2默认是double的数据类型,从高精度转低精度不允许隐式转换,否则语法报错。

2.显示转换

int m = (int)1.2;

 

从double转int可以使用显式转换,这里是从高精度转到低精度数据类型。但是更复杂的数据类型转换显然无法进行。

 

bool m =(bool)1.2;(报错)

 

 

3.使用转换函数转换

 

bool m = Convert.ToBoolean(1.2);

 

使用Convert.to系列函数可以进行多种多样的数据类型转换。

 

 

4.特定类型的转换

int m = int.Parse("33.0");(异常)

parse()也可以进行数据类型转换,但是对于转换对象,显然是非常挑剔。字符串里含有非数字就会报字符串格式不正常的异常。

 

 

 

5.类类型数据转换

interface IAAA

    {

 

    }

 

 

    class TestAA:IAAA

    {

        public int Test()

        {

            return 3;

        }

    }

 

    class TestBB : IAAA

    {

        public int Test()

        {

            return 3;

        }

    }

    class DataConvert

    {

 

        public static void Test()

        {

 

            IAAA aAA = new TestAA();

 

            TestBB t0 = aAA;(语法错误)

            TestBB t1 = (TestBB)aAA;(报异常)

            TestBB t2 = aAA as TestBB;(没有异常,但是t2=null)

 

 

 

            int a = 0;

 

 

        }

    }

 

 

类也是一种数据类型,把对象进行数据类转换和简单数据类型是类型的。

第一种,隐式转换,语法上就不行,不同的类不能进行转换,除非是子类对象赋值给父类对象变量。

第二种现式转换,语法上可以,但是不同的类还是不能进行转换,会报异常。

第三种 使用AS 进行转换,不同的类还是不能进行转换,但是转换失败不会报异常,但是t2的值会为nul

 

总结:

使用conver.to系列函数和AS 语法进行数据类型转换是很好的,兼容性很强,如果转换失败也比较好判断。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值