C#中的int.TryParse怎么用?

 我来答
你是谁LCqTt
2017-12-27 · TA获得超过602个赞
知道小有建树答主
回答量:604
采纳率:0%
帮助的人:861万
展开全部
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.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式