C#如何获取IF语句块内的字符串变量并拼接后作为返回值
问题分析
你代码中的rescorr和reswron都属于块级局部变量,仅能在对应的if/else大括号内部被访问,离开代码块后就会失效,无法在方法的其他位置读取调用。
调整方案
场景1:按分支取对应字符串返回(常规需求,if/else为互斥分支,只会执行其中一个逻辑)
调整变量作用域,在方法层级提前声明结果变量,分支内赋值后直接返回即可:
public IActionResult TestingSample(int A, int B) { string result = string.Empty; if (A > B && B != 0) { int corr = 2 + A * B; string rescorr = corr.ToString(); result = rescorr; } else { int wron = 2 * A + B; string reswron = wron.ToString(); result = reswron; } // 返回字符串结果,IActionResult类型可以用Ok()包装返回值 return Ok(result); }
如果需要给返回字符串加固定拼接内容,直接修改最后返回的result即可,比如return Ok("计算结果:" + result)。
场景2:确实需要拼接两个计算结果的字符串
因为if/else是互斥分支,原有写法无法同时得到两个值,需要把两个计算逻辑提到分支外部:
public IActionResult TestingSample(int A, int B) { // 独立计算两个值,不受分支影响 int corr = 2 + A * B; string rescorr = corr.ToString(); int wron = 2 * A + B; string reswron = wron.ToString(); // 拼接两个字符串 string combineResult = rescorr + reswron; // 原有的分支逻辑如果还有其他处理可以保留,无其他需求直接返回拼接结果即可 return Ok(combineResult); }
内容的提问来源于stack exchange,提问作者Haminteu
相关产品推荐
相关产品推荐

