Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 静态只读字典出错_C#_Dictionary_Static_Readonly_Public - Fatal编程技术网

C# 静态只读字典出错

C# 静态只读字典出错,c#,dictionary,static,readonly,public,C#,Dictionary,Static,Readonly,Public,我在编译这些代码行时出错: using System.Collections.Generic; using System.Linq; using System.Web; namespace test { public class testing { public static readonly string IN_TABLE_KEY = "IN"; public static readonly string OUT_TABLE_KEY = "O

我在编译这些代码行时出错:

using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace test
{
    public class testing
    { 
        public static readonly string IN_TABLE_KEY = "IN";
        public static readonly string OUT_TABLE_KEY = "OUT";
        public static readonly string TODAY_TABLE_KEY = "TODAY";
        public static readonly Dictionary<string, string> TEST =
            new Dictionary<string, string>()
            {
                { IN_TABLE_KEY, "TEST1"},
                { OUT_TABLE_KEY, "TEST2"},
                { TODAY_TABLE_KEY, "TEST3"}
            };
    }
}
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
名称空间测试
{
公共类测试
{ 
_TABLE_KEY=“IN”中的公共静态只读字符串;
公共静态只读字符串输出\u TABLE\u KEY=“OUT”;
公共静态只读字符串TODAY\u TABLE\u KEY=“TODAY”;
公共静态只读字典测试=
新字典()
{
{IN_TABLE_KEY,“TEST1”},
{OUT_TABLE_KEY,“TEST2”},
{TODAY_TABLE_KEY,“TEST3”}
};
}
}
我真的不明白,这段代码就是无法编译,我不知道这个错误是关于语法还是代码中的其他地方

下面是我得到的语法错误:

);预期 类、结构或接口成员声明中的标记“{”无效 命名空间不直接包含字段或方法等成员 类型或命名空间定义,或应为文件结尾


谢谢。

您似乎将声明放在了类声明之外

试试这个:

namespace MyNamespace
{
   public class MyClass
   {
      public static readonly string IN_TABLE_KEY = "IN";
      public static readonly string OUT_TABLE_KEY = "OUT";
      public static readonly string TODAY_TABLE_KEY = "TODAY";
      public static readonly Dictionary<string, string> TEST = 
          new Dictionary<string, string>()
             {
                { IN_TABLE_KEY, "TEST1" },
                { OUT_TABLE_KEY, "TEST2" },
                { TODAY_TABLE_KEY, "TEST3" }
             };
   }
} 
名称空间MyNamespace
{
公共类MyClass
{
_TABLE_KEY=“IN”中的公共静态只读字符串;
公共静态只读字符串输出\u TABLE\u KEY=“OUT”;
公共静态只读字符串TODAY\u TABLE\u KEY=“TODAY”;
公共静态只读字典测试=
新字典()
{
{IN_TABLE_KEY,“TEST1”},
{OUT_TABLE_KEY,“TEST2”},
{TODAY_TABLE_KEY,“TEST3”}
};
}
} 

查看错误,您似乎忘记将其放置在类中,或者忘记了名称空间声明


在.NET中不能有全局字典,请尝试在类中而不是在任何方法中声明它,如下图所示


你不能有公共局部变量。那就是在方法代码中声明公共局部变量…听起来你在上面的某个地方遇到了令人振奋的问题。我觉得这段代码很好。在我看来,你使用的是旧版本的C#编译器,在语言中添加集合初始值设定项之前。我刚刚尝试过,它编译得很好。哪个fw a你在使用什么?到目前为止,我们还缺少一条重要的信息:你使用的是什么框架版本?.NET 2?.NET 1.1?.NET 3.5?嗯。实际上,不需要图像。问题中的==)更可能是框架混淆-使用不支持数组初始化的.NET框架版本。嗯,可能是…那可能是.NE我猜是T1.1。但这真的会触发错误消息吗?不确定。我没有那么旧的工作室可用。=)