[英]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.