一般说:
1)小范围的到大范围的就是自动转换。
比如:
int a=10;
long b;
b=a;
说明:在这里是将int类型的变量的值赋值给long类型的变量,但是因为long类型的范围比int大,所以自动转换就可以。
2)大范围类型的变量的值赋给小范围类型的变量的时候,就需要强制转换才能成功。
例如:
long a=10;
int b;
b=a;
编译则不会成功,需要强制转化,但是可能会有数据溢出。即:b=Convert.ToInt32(a);
说明:int、long、float、double、用户自定义的结构类型、枚举类型等都是属于值类型,string、char,接口类型、类类型等属于引用类型。
3)不同类型(值类型和引用类型)之间的转换需要强制转换。
例如:
string a="";
int b;
b=Convert.ToInt32(a); |