You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio/Xamarin C# 类级Dictionary无法识别IDE1007报错

报错原因

C#语法规定,类的成员声明区域(即类的大括号内、方法/构造函数/属性等成员块外的位置)只能写成员声明、初始化赋值类内容,不能直接写Add这类需要执行的逻辑语句。你把exerciseTypes.Add("Warmup",false);直接裸写在类成员定义区,编译器找不到合法的执行上下文,就会抛出IDE1007系列的“当前上下文不存在对应名称”错误。

修复方案

要求Dictionary归属于类本身、不属于实例,只要保证成员用static修饰,把初始化逻辑放到合法的执行位置即可,有两种常用实现:

方案1:静态构造函数初始化(推荐,适合后续需要动态追加键值对的场景)

静态构造函数归属于类本身,只会在类第一次被加载访问时执行一次,所有实例共享执行结果,完全满足类级成员的要求,修改后完整代码如下:

using System;
using System.Collections.Generic;
using System.Text;

namespace Trainer_App
{
    internal class Exercise
    {
        public static Dictionary<string, bool> exerciseTypes = new Dictionary<string, bool>();
        private string name;
        private int min_num_balls;
        private int[] num_participants;
        private string court_type;
        private string[] accessories;
        private static int id = 0;

        // 静态构造函数:和实例无关,类加载时仅执行一次
        static Exercise()
        {
            exerciseTypes.Add("Warmup", false);
            // 后续需要新增默认运动类型,直接在这里追加Add逻辑即可
        }

        public Exercise()
        {
        }
    }
}

方案2:声明时直接用集合初始化器赋值(适合初始键值对固定的场景)

如果初始键值是固定不变的,可以直接在静态字段声明的时候用集合初始化语法填充内容,不需要单独写Add调用,代码更简洁:

using System;
using System.Collections.Generic;
using System.Text;

namespace Trainer_App
{
    internal class Exercise
    {
        public static Dictionary<string, bool> exerciseTypes = new Dictionary<string, bool>()
        {
            {"Warmup", false}
            // 其他固定键值对直接按这个格式追加即可
        };
        private string name;
        private int min_num_balls;
        private int[] num_participants;
        private string court_type;
        private string[] accessories;
        private static int id = 0;

        public Exercise()
        {
        }
    }
}
注意事项
  • 两种方案实现的exerciseTypes都是类级静态成员,所有Exercise类的实例共享同一个Dictionary对象,不会随实例创建生成新的副本,完全符合需求。
  • 不要把Add初始化逻辑写到普通实例构造函数里,否则每次new Exercise()都会重复执行Add,第二次创建实例时就会抛出“键已存在”的运行时异常,也违背了类级成员和实例解耦的设计要求。

内容的提问来源于stack exchange,提问作者Gael Pinto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 06:12:22