我想写一个扩展方法,如果提供任何非整数或空值,应该返回1。Int32.TryParse()
将非整数或空值解析给0
。
我试过了
public static int ToInt(this string text)
{
int num;
return int.TryParse(text, out num) ? num : 1;
}
取一个对象,并测试它是否是int型:
static class Program
{
static void Main()
{
int i = "124241".ParseToInt(); //124241
int j = DateTime.Now.ParseToInt(); //-1
}
public static int ParseToInt(this object testItem)
{
int i;
return Int32.TryParse(testItem.ToString(), out i) ? i : -1;
}
}
1
通常表示成功。我不会因为失败而返回1
。
您所需要做的就是检查您的解析是否成功,并设置适当的值。
var input = "blah";
int myInt;
bool parseSuccessful = Int32.TryParse(input, out myInt);
if (!parseSuccessful)
{
myInt = 1;
}