TryParse方法如何工作?

时间:2015-09-26 00:29:40

标签: c#

我有以下代码。

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方法吗?

2 个答案:

答案 0 :(得分:2)

如果IsConversionSuccessful变为false,则条件if(IsConverstionSuccessful)的评估结果为if(false)。因此,if的主体不会执行。

TryParse方法无法确定程序中下一行的执行情况。它只是通过返回一个布尔值来告诉您从stringint的转换是否成功。

TryParse后面的行取决于您。

答案 1 :(得分:1)

正如你清楚指出的那样,

bool IsConversionSuccessful = int.TryParse(StrNumber, out result);

根据方法解析数字的方式,将IsConversionSuccessful设置为true / false。

如果他们自己的陈述评估某些东西并且总是得到一个布尔答案,无论是真还是假。这是因为if语句就像二叉树一样。他们的工作方式如下:enter image description here

当您评估是否(A),在您的情况下是

if (IsConversionSuccessful)

处理器决定采取和执行的路径取决于处理器做出的决定。请注意,即使排除了else分支,空的else分支也会简单地指向if语句之后的“...”。