C# 类型转换

C# 类型转换

 

自动类型转换(隐式类型转换):


 

1个byte类型的变量中的值赋值给1个int类型的变量,为什么不报错,数据类型明显不同?

  • byte类型的变量和int类型的变量都是用来存储整型的数据。
  • 无论byte类型的变量中的值是多少,都可以将其放倒int类型的变量中去,不会出任何问题。

在数据类型兼容的情况下,我们可以将一个小范围的变量的值直接赋值给1个大范围的类型的变量。这样做是绝对不会有问题的。

  • 因为他们之间相互兼容
  • 小范围变量的值无论是多少都可以直接放到大范围的变量中。

   因为不会有任何问题,所有直接赋值就可以了,C#编译器自动的帮助我们完成转换。

   所有的数值类型和char类型之间是互相兼容的。可以直接将1个char类型的数据赋值给1个int类型的变量,那么这个int类型的变量的值就是这个char类型的数据对应的ASCII码。(char类型的数据对应的ASCII码是1个int类型的数据。)

  满足自动类型转换的条件

  • 数据类型兼容(所有的数值类型和char类型之间相互兼容),特别强调字符串和数值类型以及char类型不兼容。
  • 目标变量的范围要大于原变量

 

 强制类型转换


 

  • 在数据类型兼容的情况下,不能直接将一个大范围的类型的变量的值直接赋值给1个小范围的类型的变量。因为有可能会发生溢出的现象。
  • 在强制转换的时候,一定要保证大范围变量中的值要在小范围的变量中。
  • 将浮点型强制转换为整型,会将小数部分截取掉,不会做四舍五入。

   强制类型转换的首要前提是:

       a、类型兼容

       b、大范围赋值给小范围

      可以直接把char类型的数据赋值给int类型的变量。

      但是不能直接把int类型的数据赋值给char类型的变量,如果一定要赋值,那么必须使用强制转换语法。结果就是以这个类型的数为ASCII码所对应的字符。

 

  注:每1个char类型的数据都有1个对应的ASCII码,这些ASCII是1个int类型的数。char类型不是int类型,只是这个数据的ASCII码是1个int类型的。

posted @ 2015-08-03 22:48  Chen_Weifeng  阅读(173)  评论(0编辑  收藏  举报