【发布时间】:2014-01-03 20:42:28
【问题描述】:
我正在尝试处理输入字符串而不是 int 的情况。 例如
newCustomer.PhoneNum = Convert.ToInt32(Console.ReadLine());
if (newCustomer.PhoneNum < 0 || newCustomer.PhoneNum > 10000000000 || newCustomer.PhoneNum.GetType() != typeof (int))
{
throw new CustomException(newCustomer.PhoneNum.ToString());
}
显然 if 的最后一个条件不正确,但我没有想法。
【问题讨论】:
-
Int32.TryParse 是你所需要的
-
有多种方法可以处理异常和验证 - 您需要绝对清楚您的条件是什么,以及您正在使用什么技术,然后我们才能真正提供帮助。
-
请注意,将电话号码表示为整数通常不是最佳解决方案。在特殊情况下,您可能需要特殊字符,例如 +、# 或 *,并且前导零可能很重要。
-
32 位整数是否足以满足您的需求?我在您的个人资料上看不到语言环境,但它不足以容纳美国或英国的电话号码,而且如果以国际国家代码为前缀,肯定不会容纳大多数号码。
-
旁注:不要尝试将电话号码保存为整数,这是个坏主意。在大多数情况下,字符串应该没问题。无论如何,您不太可能需要数值。
标签: c# exception-handling