2013-12-18 4 views
1

Я пытаюсь создать статическую переменную внутри класса, как показано ниже,Присвоить статический veriable внутри класса

public class ClassEnLanguage 
{ 
    public static Dictionary<string, string> dictionary = new Dictionary<string, string>(); 
} 

это не проблема, работают хорошо, даже я могу получить доступ к этому из другого класса, теперь я хочу, чтобы добавить значения в словарь без использования какого-либо метода. как,

public class ClassEnLanguage 
{ 
public static Dictionary<string, string> dictionary = new Dictionary<string, string>(); 
    dictionary.Add("somekey1","someValue1"); 
    dictionary.Add("somekey2","someValue2"); 
} 

Как и в Java, мы можем сделать так,

public class ClassLanguageEn { 
    public static HashMap labels = new HashMap(); 
     static {   
      labels.put("somekey1","someValue1"); 
      labels.put("somekey2","someValue2"); 
       } 
} 

и мы можем получить доступ к этой переменной, используя ClassLanguageEn.labels (Classname.VariableName).

Теперь мой вопрос - это можно сделать. любая помощь будет оценена Спасибо заранее.

ответ

3

Вы можете использовать тип инициализатора или static constructor, как это:

public class ClassEnLanguage 
{ 
    public static Dictionary<string, string> dictionary = new Dictionary<string, string>(); 
    static ClassEnLanguage() 
    { 
     dictionary.Add("somekey1","someValue1"); 
     dictionary.Add("somekey2","someValue2"); 
    } 
} 

Заметьте, что вы можете также использовать словарь инициализатору так:

public class ClassEnLanguage 
{ 
    public static Dictionary<string, string> dictionary = new Dictionary<string, string> 
     { 
      { "somekey1", "someValue1" }, 
      { "somekey2", "someValue2" } 
     }; 
} 
+0

спасибо за срочный ответ @pswg действительно оцените ваш быстрый ответ. –

+0

Да, инициализатор коллекции кажется естественным здесь (второй пример). –

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