C# Shop类内调用List<Item>变量items提示不存在于当前上下文错误求解
错误原因
1. 可执行代码位置错误
C# 类的作用域下仅允许定义字段、属性、方法、事件等成员结构,不能直接编写执行逻辑代码。你调用items.Add()的代码直接写在了Shop类的成员定义层级,不属于任何方法、构造函数、属性访问器的代码块,编译器无法识别该上下文下的items变量,因此抛出不存在的错误。
2. 作用域缩进问题
你提供的Shop类代码开头有多余的缩进,如果实际编码时误将items字段的定义写在了其他已闭合的代码块(比如某个方法内部),那么你在外部作用域调用items.Add()时也会触发该错误。
修复示例
把items.Add()的调用放到构造函数或自定义方法内部即可,示例代码如下:
public class Shop { List<Item> items = new List<Item>(); Item sword = new Item("Sword", "Melee", "Plain old sword", 10); // 注意原代码的Meele是拼写错误,正确为Melee public string shopName; // 构造函数:类实例化时自动执行,可以在这里初始化商店道具 public Shop() { items.Add(sword); } // 也可以放到自定义方法中,需要时主动调用初始化 public void LoadShopItems() { items.Add(sword); } }
内容的提问来源于stack exchange,提问作者Branislav Živanović
相关产品推荐
相关产品推荐

