C#的Convert类提供了丰富的类型转换方法,支持基础类型、字符串、对象之间的互转。以下是核心用法及注意事项的总结:
一、基础类型转换
1. 数值类型互转
- ToInt32()、ToInt64()、ToDouble()等可将字符串、布尔值或对象转为对应数值类型。
int num = Convert.ToInt32("123"); // 123
- 支持byte、short、decimal等几乎所有基础数值类型。
2. 布尔值转换
- ToBoolean()将字符串"true"/"false"或数值0/非0转为布尔值。
bool flag = Convert.ToBoolean("true"); // true
二、字符串与对象转换
1. 对象转字符串
- ToString()将对象或基础类型转为字符串,自动调用对象的ToString()方法。
string str = Convert.ToString(123.45); // "123.45"
2. 处理空值
- 若输入为null,Convert会返回默认值(如0、false或空字符串),而Parse方法会抛出异常。
int? num = Convert.ToInt32(null); // 0(非Nullable类型)
三、异常处理与安全转换
1. 格式异常处理
- 若输入格式错误(如Convert.ToInt32("abc")),会抛出FormatException。
- 推荐使用TryParse方法(如int.TryParse())避免异常。
2. 类型兼容性
- 转换需类型兼容,例如无法将DateTime直接转为int,需通过Ticks属性间接转换。
五、使用建议
1. 优先使用TryParse处理可能异常的输入。
2. 转换复杂类型(如DateTime)时,结合DateTime.ParseExact指定格式。
3. 对于Nullable<T>类型,需注意默认值行为。