zoukankan      html  css  js  c++  java
  • 3.2.2 类型转换

    很多时候我们需要在各种类型的简单变量之间进行转换,也就是类别转换。一般类别转换分为如下几种。

    • 隐式转换。不需要编写任何代码,由编译器自动进行的类型转换。如果某一种类型覆盖了另外一种类型的范围(比如byte类别是0~255之间的整数,完全被int型所覆盖),那么覆盖范围比较小的那个类型可以隐式转换到覆盖范围大的那个类型(byte可以隐式转换到int)。
      以下代码是可行的。
      byte bData = 20;
      int iAge = bData;

    • 显式转换。明确要求编译器把某种类型转换为另外一种类型。要求比隐式转换适当放宽,只要是类型彼此之间具有一定的关系(比如都是数字)。如下的代码实现了显式转换。
      int iAge = 20;
      byte bData = (byte)iAge;

      //由于char类型也是以数字存储,因此以下代码可行
      int i = 10;
      char c = (char)i;

      在使用显式转换的时候要小心,如果转换超出类型的限制可能会发生截断或者溢出。
      int iAge = 454394509;
      byte bData1 = (byte)iAge;            //iAge=141,发生截断
      byte bData2 = checked((byte)iAge);   //进行溢出检查,出现溢出
      double d = 1.23;
      int i = (int)d;                      //i=1,发生截断

    • 强制转换。上例我们看出,虽然20这个字符串存放的是一个数字,但是编译器是不知道它是不是一个数字的,有的时候我们需要强制进行转换。
      string s = "20";
      int i = Convert.ToInt16(s);

      除了使用Convert类以外,我们还可以使用各种类型的Parse方法来从字符中转换成相应的类型。
      string s = "20";
      int i = int.Parse(s);

      很多时候我们需要把各种类型转换为字符串,除了可以使用Convert.ToString()方法外,还可以使用类型的ToString()方法转换。
      string s = "";
      int i = 20;
      = i.ToString();
      double d = 1.23;
      = d.ToString();
  • 相关阅读:
    umeng社交分享最新版5.0的跨进程使用崩溃的问题及解法-Android
    AlertDialog禁止返回键
    一个男人想经商,不读 100本商人自传,怎么会了解商人的思维状态
    Android中使用Gson解析JSON数据的两种方法
    DevExpress gridControl控件动态绑定列 zt
    获得WCF Client端的本地端口 z
    log4net.dll配置以及在项目中应用 zt
    系统交易策略 hylt
    判斷作業系統為 64bit 或 32bit z
    路徑 z
  • 原文地址:https://www.cnblogs.com/0754ydj/p/1246950.html
Copyright © 2011-2022 走看看