类型转换

自动类型转换

隐式类型转换 - 这些转换是 C# 默认的以安全方式进行的转换, 不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。

转换规则
从存储范围小的类型到存储范围大的类型。
整数具体规则为:
         byte→short(char)→int→long→float→double
也就是说byte类型的变量可以自动转换为short类型,示例代码:
         byte b = 10;
         short sh = b;
在类型转换时可以跳跃。示例代码:
         byte b1 = 100;                       
         int n = b1;
 
 

强制类型转换

显式类型转换 - 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。

转换规则
从存储范围大的类型到存储范围小的类型。
具体规则为:
         double→float→long→int→short(char)→byte
例如:
double d = 5673.74;
int i;
i = (int)d;
 
 
 
 
  1.   Convert.ToInt32()       2.  int.Parse()

Convert.ToInt32() 则可以将多种类型(包括 object  引用类型)的值转换为 int  类型,因为它有许多重载版本[2]
    public static int ToInt32(object);
    public static int ToInt32(bool);
    public static int ToInt32(byte);
    public static int ToInt32(char);
    public static int ToInt32(decimal);
    public static int ToInt32(double);
    public static int ToInt32(short);
    public static int ToInt32(long);
    public static int ToInt32(sbyte);
    public static int ToInt32(string);

Int32.Parse()表示将包含数字的字符串转换为32 位有符号整数,属于内容转换

    如果 string 为空,则抛出 ArgumentNullException 异常;
    如果 string 格式不正确,则抛出 FormatException 异常;

 可以看出来,Convert.ToInt32() 的功能是最强大的,它把Int32.Parse()功能包括了,也是说是Int32.Parse()Convert.ToInt32() 的一种特殊情况。

 

 


版权声明:本文为Mogul1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>