谁能知道这段代码是怎么判断出传入的参数只能是数字,不能是其它符号??谢谢!在线等,马上给分
看下面代码,这个是判断端口号码是否有效,当端口号码为空的时候提示“端口号不能为空”,但是我百思不得其解的是它是怎么判断出除了数字,其它字符也是无效的呢?比如我参数传进来一个 "ss " 它也会提示端口号无效。
private int getValidPort(string port)
{
int lport;
//测试端口号是否有效
try
{
if(port== " ")
{
throw new ArgumentException( "端口号为空,不能启动服务器 ");
}
lport = System.Convert.ToInt32(port);
}
catch(Exception e)
{
Console.WriteLine( "无效的端口号: "+e.ToString());
this.rtbSocketMsg.AppendText( "无效的端口号: "+e.ToString()+ "\n ");
return -1;
}
return lport;
}
------解决方案--------------------lport = System.Convert.ToInt32(port); 这句是转为数字,如果有异常,则为无效数字
------解决方案--------------------lport = System.Convert.ToInt32(port);
这行语句表示将port(string)转换成int32型,如果不能转换或转换失败,则引发异常,最后返回-1.
------解决方案--------------------System.Convert.ToInt32方法,系统自己判断是否有异常!