Как создать общий словарь? - PullRequest
2 голосов
/ 16 марта 2011

У меня есть класс, где у меня есть словарь, содержащий определенный ключ.Но значение должно быть общим.

Что-то вроде:

private Dictionary<String,TValue> _Dictionary;

Но TValue не найден (очевидно), но что еще я должен вставить?Я нашел решение для IList, но я просто хочу добавить one Generic Object.

Ответы [ 2 ]

2 голосов
/ 16 марта 2011

Если вы используете это в универсальном типе, Tejs ответ подходит.

Однако, если вы просто пытаетесь создать словарь с фиксированным типом ключа, но который может хранить любое значение, один из вариантов - просто использовать System.Object для вашего значения:

 private Dictionary<string, object> _dictionary;

Это позволит вам назначить любой объект в значение. Однако это потенциально опасно, так как вы теряете безопасность типов и должны быть уверены, что распаковали и преобразовали объект правильно.

2 голосов
/ 16 марта 2011

Так вы хотите универсальный словарь?Используйте предопределенный класс.

public Dictionary<int, string> _dictionary = new Dictionary<int, string>();

Это дает вам словарь с целочисленным ключом и строковым значением.Если вам нужен словарь, в котором только один из этих переменных является переменным, вы можете унаследовать словарь, чтобы создать свой собственный тип.

public class KeyTypeConstantDictionary<T> : Dictionary<int, T>
{
}

Тогда использовать его можно так:правильно понял ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...