C#报错「使用未赋值且当前上下文不存在的局部变量」如何解决
问题原因
- 你把
totalCost变量定义在了foreach循环内部,这个变量的作用域仅局限于单次循环的执行块,循环结束后就会被销毁,外部自然无法访问。 - 你把变量移到循环外部后无法使用,是因为没有给局部变量设置初始值,C#语法要求局部变量在参与运算、作为参数传递前必须完成初始化,否则会触发编译报错。
修正后的代码
public void PayForConcessions() { // 将totalCost定义在方法作用域内,同时赋初始值0 decimal totalCost = 0; foreach (ConcessionItem ci in concessionItems) { totalCost += ci.Price; } this.RemoveMoney(totalCost); }
内容的提问来源于stack exchange,提问作者Nate
相关产品推荐
相关产品推荐

