conclusion
- int.TryParse 与 int.Parse类似 同样不能转换double类型 不能转换null值等, 但是TryParse不抛出异常而是返回true Or false 告知结果,使得程序能继续运行。 Parse抛出异常 使得程序无法继续运行。
Convert.ToInt32与int强转类似 只是Convert会进行四舍五入,而int直接截断取值。
详细的 唯有官方看吧 api文档
test
- 转换null
int c = int.Parse(null);
//结果:抛出异常 转换对象不能为NULL 无法继续运行。
int b; bool value = int.TryParse(null, out b);
//结果: value为false b为0 。
int a = Convert.ToInt32(null);
//结果:a 为 0。
int d=(int)null //语法错误GG
- 转换double类型
double value = 1.232d;
int c = int.Parse(value.ToString());
//结果:抛出异常 字符串格式不正确 无法继续运行
int a = Convert.ToInt32(value);
//结果:a=1
int d = (int)value;
//结果:d=1
int b;
bool outcome = int.TryParse(value.ToString(), out b);
//结果:outcome=false b=0
- 转换double类型
double value = 1.632d; //若四舍五入 取整为2
int a = Convert.ToInt32(value);
//结果:a=2 说明有进行四舍五入
int d = (int)value;
//结果:d=1 说明没有进行四舍五入 只是截断值来取整
- 转换int类型
double value = 45;
int a = Convert.ToInt32(value);
int d = (int)value;
int b;
bool outcome = int.TryParse(value.ToString(), out b);
//outcome=true
int c = int.Parse(value.ToString());
//a b c d 均等于45