为什么我的函数会告诉我;检测到无法访问的代码吗?c#

本文关键字:访问 代码 函数 我的 告诉我 检测 为什么 | 更新日期: 2023-09-27 18:25:01

我创建了这个函数:

public bool checkFunds(int x)
        {
            if(checksBox.CheckState == CheckState.Checked && OriginalMain.temporaryChecks >= x)
            {
                return true;
            }
            else
            {
                MessageBox.Show("Error! Insufficient funds");
                return false;
            }
            if(savingsBox.CheckState == CheckState.Checked && OriginalMain.temporarySavings >= x)
            {
                return true;
            }
            else
            {
                MessageBox.Show("Error! Insufficient funds!");
                return false;
            }
        }

此代码适用于windows窗体应用程序。我正在制作一个银行模拟器,你可以从两个不同的账户中选择取出你的钱。此功能特别检查您选中的复选框,并检查所选帐户上是否有足够的可用资金。然而,C#一直告诉我,第二个if是一个无法访问的代码。为什么?我该怎么修?

为什么我的函数会告诉我;检测到无法访问的代码吗?c#

您会收到警告,因为您的函数必须在以下位置之一退出:

if(checksBox.CheckState == CheckState.Checked && OriginalMain.temporaryChecks >= x)
{
    return true;   // <-- if the condition is true, your function will exit here
}
else
{
    MessageBox.Show("Error! Insufficient funds");
    return false;   // <-- if the condition is false, your function will exit here
}
// this means this place in code is NEVER reached, so you get the warning
if(savingsBox.CheckState == CheckState.Checked && OriginalMain.temporarySavings >= x)

很可能你需要类似的逻辑:

if(checksBox.CheckState == CheckState.Checked)
{
    if(OriginalMain.temporaryChecks >= x)
    {
        return true;
    }
    else
    {
        MessageBox.Show("Error! Insufficient funds");
        return false;
    }
}
if(savingsBox.CheckState == CheckState.Checked)
{
    if(OriginalMain.temporarySavings >= x)
    {
        return true;
    }
    else
    {
        MessageBox.Show("Error! Insufficient funds!");
        return false;
    }
}