Как я наследовался Словарю?

константа не может использоваться для классов или структур (за исключением строковых констант и пустого указателя, как г-н Skeet указал), только для типов значения, и получены доступ как статические поля. Значение константы установлено во время компиляции и должно быть установлено, когда оно объявляется.

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

Вот хорошая страница для обзора константы, и статических ключевых слов только для чтения.

18
задан Pratik Deoghare 20 October 2009 в 14:27
поделиться

2 ответа

Вы были близки, вам просто нужно удалить параметры типа из конструкторов.

class Foo<TKey,TValue> : Dictionary<TKey, TValue>
{   
    Foo():base(){}
    Foo(int capacity):base(capacity){}
}

Чтобы переопределить метод, вы можете использовать ключевое слово override.

25
ответ дан 30 November 2019 в 06:46
поделиться

Not directly answering your question, just an advice. I would not inherit the dictionary, I would implement IDictionary and aggregate a Dictionary. It is most probably a better solution:

class Foo<TKey,TValue> : IDictionary<TKey, TValue>
{   

    private Dictionary<TKey, TValue> myDict;

    // ...
}
17
ответ дан 30 November 2019 в 06:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: