Объявить словарь с одним ключом, несколькими значениями

C# Я использую словарь, как:

var dict = new Dictionary<byte, Tuple<string, string>>();           
Tuple<string, string> t = new Tuple<string, string>(label, unit);

Я хочу объявить это как член данных класса. но это говорит

Контекстное ключевое слово "var" может появляться только в объявлении локальной переменной или в коде скрипта

Как мне это решить?

2 ответа

В C# вы не можете использовать var для объявления членов класса:

Вот технические проблемы с реализацией этой функции. Общие случаи кажутся простыми, но более сложные случаи (например, поля, ссылающиеся на другие поля в цепочках или циклах, выражения, которые содержат анонимные типы), не являются таковыми.

взято из поста блога Почему нет полей на полях? и из этого поста.

В таком случае вам нужно объявить явные типы:

Dictionary<byte, Tuple<string, string>> dict = new Dictionary<byte, Tuple<string, string>>();

Сообщение об ошибке довольно ясно. Вы не можете использовать var объявлять членов класса, только для локальных переменных.

Для членов класса вам нужно использовать явный тип:

public class MyClass
{
    Dictionary<byte, Tuple<string, string>> dict = new Dictionary<byte, Tuple<string, string>>();

    // ...
}
Другие вопросы по тегам