无法访问的代码 - if语句中的任何内容

时间:2018-02-15 15:30:09

标签: c# if-statement unreachable-code

我在询问之前在这里搜索了这个问题,并且所有答案似乎都是人们在return break或其他人之后放置代码。我遇到了一个问题,无论我在if语句中放入什么,代码都会显示它无法访问。

private const double quarterPrice = 4.50;
private const double halfPrice = 7.50;
private const double fullPrice = 10.00;
private const double taxRate = .08;
private int orders = 0;
private double sales = 0;

private void btnFindMax_Click(object sender, EventArgs e)
{
    if (quarterPrice > halfPrice)//if i put something in here, it is unreachable
    {
        int i = 1;//unreachable
        if (quarterPrice > fullPrice)//unreachable
        {

        }
    }
}

这令人沮丧,因为我也不知道为什么这是错的,或者该如何解决它。它没有给我红色错误下划线,只有绿色建议行。但是,在编译时,if语句中的所有代码都不会执行。

我甚至试图这样做:

private void btnFindMax_Click(object sender, EventArgs e)
{
    if (quarterPrice < halfPrice)
    {
       Close();
    }
}

代码仍然没有执行。我不知道发生了什么......

2 个答案:

答案 0 :(得分:2)

您已将quarterPricehalfPrice定义为constants。编译器知道quarterPrice永远不会超过halfPrice,并且会向您发出警告。

例如,您可以生成相同的警告。

if (false)
{
    int i = 1;

    // Do other work.
}

答案 1 :(得分:2)

您已将变量定义为常量。编译器知道if语句中的条件永远不会为真。