日期:2014-05-20  浏览次数:20789 次

谁能知道这段代码是怎么判断出传入的参数只能是数字,不能是其它符号??谢谢!在线等,马上给分
看下面代码,这个是判断端口号码是否有效,当端口号码为空的时候提示“端口号不能为空”,但是我百思不得其解的是它是怎么判断出除了数字,其它字符也是无效的呢?比如我参数传进来一个 "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方法,系统自己判断是否有异常!