我想编写扩展方法,如果提供任何非整数或空值,则返回1。 Int32.TryParse()
将非整数或空值解析为0
。
我试过了
public static int ToInt(this string text)
{
int num;
return int.TryParse(text, out num) ? num : 1;
}
答案 0 :(得分:4)
只需要一个对象,并测试它是否为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
。
答案 1 :(得分:0)
您需要做的就是检查您的解析是否成功并正确设置值。
var input = "blah";
int myInt;
bool parseSuccessful = Int32.TryParse(input, out myInt);
if (!parseSuccessful)
{
myInt = 1;
}