c#中convert.toInt32和int.parse,和强制类型转换的区别

string a="123";

int i=(int)a; 这是会出现错误因为:强制类型转换只能转换值类型不能转换引用类型 string属于引用类型   强制类型转换时如果值类型为小数则直接舍位 如: int i=(int)123.6 结果为:123

int.parse()里边的值只能是string类型,他也只能转换string里边的整数如: string a="123" string a="123.4"就会出错 也不能转换值为null的 如: string a=null; 为出错

convert.toInt32 当 值为null时 结果为0 ; 在转换double类型时小数位为0-4舍掉 ,5就找临近的偶数,6-9就进位 当转换string a="123.4"也会出错因为转换string类型为整数时string里边的值只能是整数才行