扩展代码:
public static class ClassExtend
{
/// <summary>
/// 将object强制转化为int
/// </summary>
/// <param name="o">要强制转换的object</param>
/// <param name="defaultValue">o为null或者转换失败的默认值</param>
/// <returns></returns>
public static int TryToInt(this object o, int defaultValue = 0)
{
int retValue;
//o为null 或者转换失败返回默认值
retValue = o == null || !int.TryParse(o.ToString(), out retValue) ? defaultValue : retValue;
return retValue;
}
}
代码中使用:
var startIndex = o["StartIndex"].TryToInt(1);
var endIndex = o["EndIndex"].TryToInt(10);
常规写法:
int startIndex;
int endIndex;
startIndex = int.TryParse(o["StartIndex"]?.ToString(), out startIndex) ? startIndex : 1;
endIndex = int.TryParse(o["EndIndex"]?.ToString(), out endIndex) ? endIndex : 10;
本文介绍了一种在C#中使用扩展方法安全地将object类型转换为int类型的方法,避免了因类型转换错误导致的程序异常。通过TryToInt扩展方法,可以轻松实现对象到整数的转换,并在转换失败时提供默认值。
1549

被折叠的 条评论
为什么被折叠?



