我有以下代码。
using System;
class program
{
static void Main()
{
string StrNumber = "100TG";
int result = 0;
bool IsConversionSuccessful = int.TryParse(StrNumber, out result);
if (IsConversionSuccessful)
{
Console.WriteLine(result);
}
else
{
Console.WriteLine("Invalid");
}
}
}
我知道TryParse方法尝试将StrNumber(100TG)转换为整数。
如果成功,它会将转换后的值保存到结果变量中,并为布尔值返回true。 如果失败,结果值将保持为0,并且对于布尔值将返回false。
我的问题是,无论IsConversionSuccessful变量得到什么样的布尔值,都不会出现(IsConversionSuccessful)"被激活?我误解了TryParse方法吗?
答案 0 :(得分:2)
如果IsConversionSuccessful
变为false
,则条件if(IsConverstionSuccessful)
的评估结果为if(false)
。因此,if
的主体不会执行。
TryParse
方法无法确定程序中下一行的执行情况。它只是通过返回一个布尔值来告诉您从string
到int
的转换是否成功。
TryParse
后面的行取决于您。
答案 1 :(得分:1)
正如你清楚指出的那样,
bool IsConversionSuccessful = int.TryParse(StrNumber, out result);
根据方法解析数字的方式,将IsConversionSuccessful设置为true / false。
如果他们自己的陈述评估某些东西并且总是得到一个布尔答案,无论是真还是假。这是因为if语句就像二叉树一样。他们的工作方式如下:
当您评估是否(A),在您的情况下是
if (IsConversionSuccessful)
处理器决定采取和执行的路径取决于处理器做出的决定。请注意,即使排除了else分支,空的else分支也会简单地指向if语句之后的“...”。