Универсальное свойство этого индекса в словаре

#c# #.net #generics #dictionary

#c# #.net #универсальные #словарь

Вопрос:

Как я могу добиться чего-то подобного. Мне не нужен метод, который возвращает приведенное значение, я хочу использовать this[] возможно ли это?

 public class DynamicDictionary : IDictionary<string, object>
{
    public T this<T>[string key] where T : class
    {
        get
        {
            object value = null;
            TryGetValue(key, out value);
            return (T)value;
        }
    }

    // ...
}   
  

Ответ №1:

Нет, вы не можете. Индексаторы — и свойства в целом — не могут быть универсальными в C #. Вместо этого вам пришлось бы использовать метод или просто привести вызывающий код.