C#中的int.TryParse怎么用?

我感觉这个东西好像就是把一个对象转换成int类型的。但是,这个方法必须有两个参数,必须写成类似这样的int.TryParse(str,out*),其中的*应该用已经定义过... 我感觉这个东西好像就是把一个对象转换成int类型的。但是,这个方法必须有两个参数,必须写成类似这样的int.TryParse(str , out * ),其中的*应该用已经定义过的int类型对象,str是要转换成int类型的对象。但是,我自己每次写的时候,都不知道这个out后面的东西到底要怎样写?写什么?有什么意思?
现在我自己也被搞的很晕了。郁闷。
各位的意思是:
string corpId = HttpContext.Current.Request.Params["comID"];
public static int comId;

private void GetParams()
{
if (!string.IsNullOrEmpty(corpId))
{
comId = 999999;
if (!int.TryParse(corpId, out comId))
{
Response.Write("<script type='text/javascript' language='javascript'>");
Response.Write("alert('页面不存在')");
Response.Write("</script>");
}
}
}

是不是把corpId转换成int类型的。如果转换不了的话,是不是comId就变成了999999.
如果转换成功的话,comid就接受corpid转换过来的值?
对吗?
展开
 我来答
匿名用户
2011-01-08
展开全部
int.Parse()是一种类容转换;表示将数字内容的字符串转为int类型。
如果字符串为空,则抛出ArgumentNullException异常;
如果字符串内容不是数字,则抛出FormatException异常;
如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常;

int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0

参考资料: cjl

你是谁LCqTt
2010-12-26 · TA获得超过602个赞
知道小有建树答主
回答量:604
采纳率:0%
帮助的人:858万
展开全部
out是用于修饰方法调用的参数的。你可以想成方法会给这个参数设置值。因此你肯定要定义一个变量来接收这个值。
int i = 0;//定义接受值的变量
int.TryParse("123",out i);

str也不一定要是整数的字符串。这个方法在遇到不能转换的值时会返回false,不会抛出异常。

楼主遇到这种问题,你最好用reflector自己看看:
以下是reflector反编译的代码:
[SecuritySafeCritical]
internal static unsafe bool TryParseInt32(string s, NumberStyles style, NumberFormatInfo info, out int result)
{
byte* stackBuffer = stackalloc byte[0x72];
NumberBuffer number = new NumberBuffer(stackBuffer);
result = 0;
if (!TryStringToNumber(s, style, ref number, info, false))
{
return false;
}
if ((style & NumberStyles.AllowHexSpecifier) != NumberStyles.None)
{
if (!HexNumberToInt32(ref number, ref result))
{
return false;
}
}
else if (!NumberToInt32(ref number, ref result))
{
return false;
}
return true;
}
可以看到result在处理时先被设置成0了,所以转换不成功,传进去的out参数就=0.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
寒风戚雨
2010-12-30 · TA获得超过2203个赞
知道小有建树答主
回答量:1646
采纳率:25%
帮助的人:957万
展开全部
int i=0;
int.TryParse("abc",out i)
第二个参数是输出参数,把结果放入i
返回的是bool类型,即成功不成功
这个和在Parse外面套try catch然后返回bool值是一样的
就是把你的代码简化了一点,帮你出错处理了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6eed2f8
2010-12-24 · TA获得超过5082个赞
知道大有可为答主
回答量:3423
采纳率:0%
帮助的人:3808万
展开全部
int i=0;
if(int.TryParse("abc",out i)){转换成功,i就是要的值}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大嘴兔兔
2010-12-24
知道答主
回答量:95
采纳率:66%
帮助的人:7.2万
展开全部
//拿ASP.NET获取参数来说明
string tempStr = request.QueryString["id"].ToString();
int id = 0;
if(int.TryParse(tempStr , out id ))//尝试转换tempStr 如果成功就把转换的值赋值给id
{
//如果进入到此块,说明转换成功
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式