簡體   English   中英

C# 從 IF 語句中獲取結果

[英]C# get Result from IF Statement

我有一個簡單的代碼,如:

public IActionResult TestingSample(int A, int B)
    {
        if (A > B && B != 0)
        {
            int corr = 2 + A * B;
            string rescorr = corr.ToString();
        }
        else
        {
            int wron = 2 * A + B;
            string reswron = wron.ToString();
        }
    }

從上面的代碼中,我想添加一個結果: rescorr + reswron 所以它變成了字符串結果。 我怎樣才能用這樣的字符串寫返回值?

非常感謝。
謝謝你。

您應該首先將字符串變量移出 if 塊

然后返回連接的字符串。

public IActionResult TestingSample(int A, int B)
{
    string rescorr = string.Empty;
    string reswron = string.Empty;

    if (A > B && B != 0)
    {
        int corr = 2 + A * B;
        rescorr = corr.ToString();
    }
    else
    {
        int wron = 2 * A + B;
        reswron = wron.ToString();
    }

    return rescorr + reswron;
}

然后您意識到其中只有 1 個會被設置,因此我們將字符串分配更改為單獨的返回值。 我們擺脫了變量和 else 塊,因為它們現在也是多余的。

public IActionResult TestingSample(int A, int B)
{
    if (A > B && B != 0)
    {
        int corr = 2 + A * B;
        return corr.ToString();
    }

    int wron = 2 * A + B;
    return wron.ToString();

}

像這樣的東西:

 public IActionResult TestingSample(int A, int B) => A > B && B != 0 
     ? $"{2 + (long)A * B}"   // "correct"
     : $"{2L * A + B}";       // "wrong" 

這里如果A > B && B != 0我們有正確的參數,我們返回2 + A * B ,其他參數是錯誤的,我們返回2 + A * B

我已經引入了long來解決可能的整數溢出(例如,當A == 2_000_000 A = 1_000_000 , A = 1_000_000

為什么沒有單個字符串結果? 如果否則只會返回一個

        string result = string.Empty;
        if (A > B && B != 0)
        {
            int cal = 2 + A * B;
            result = cal.ToString();
            return result;
        }
                
        int cal = 2 * A + B;
        result = cal.ToString();
        return result;
        

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM