2012-09-24 3 views
-1

У меня есть ошибки компиляции те строки кода:ошибка со статическим только для чтения словаря

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"} 
      }; 
    } 
} 

Я действительно не понимаю, этот код просто не будет компилироваться, я не знаю, если эта ошибка о синтаксис или где-либо еще в коде.

здесь ошибка синтаксиса я получил:

; Ожидается, Недопустимый маркер «{» в классе, структуре или декларации элемента интерфейса пространства имен непосредственно не содержит такие элементы, как поля или методы типа или пространства имен определения или отслуживших файла ожидалось

Спасибо ,

+0

Вы не можете публиковать локальные переменные. Это объявляет публичную локальную переменную в методе кода ... – MoonKnight

+1

звучит так, как будто у вас есть проблема с фиксацией где-то выше. Этот код выглядит хорошо для меня. –

+0

Вставьте полный код файла, пожалуйста. – gdoron

ответ

0

Кажется, вы размещаете свои объявления за пределами декларации вашего класса.

Попробуйте это:

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" } 
      }; 
    } 
} 
+0

У меня это место внутри класса, я просто не поместил код – user1694602

+0

Просто не поместил код? Где? Сейчас работает нормально? –

+0

В вопросе.Скорее всего, это путаница в структуре - OP с использованием фреймворческой версии .NET, которая не поддерживает инициализацию массива. –

0

Глядя на ошибки, это выглядит, как вы забыли поместить это внутри класса, или забыл объявление пространства имен.

Вы не можете иметь глобальные словари в .NET

+0

У меня это место внутри класса, я просто не помещал код – user1694602

0

Попробуйте объявить его в классе, а не в какой-либо способом, как я показал на рисунке ниже.

enter image description here

+4

Uhm. На самом деле нет нужды в изображении. =) –

+0

У меня это место внутри класса, я просто не помещал код – user1694602

Смежные вопросы