У меня есть следующая иерархия классов:
public class Row : ICloneable, IComparable, IEquatable<Row>,
IStringIndexable, IDictionary<string, string>,
ICollection<KeyValuePair<string, string>>,
IEnumerable<KeyValuePair<string, string>>,
System.Collections.IEnumerable
{ }
public class SpecificRow : Row, IXmlSerializable,
System.Collections.IEnumerable
{
public void Add(KeyValuePair<MyEnum, string> item) { }
}
Однако попытка сделать следующее дает ошибку:
var result = new SpecificRow
{
{MyEnum.Value, ""},
{MyEnum.OtherValue, ""}
};
Я получаю эту ошибку:
Лучший перегруженный метод добавления «Row.Add(string, string)» для инициализатора коллекции имеет некоторые недопустимые аргументы.
Как я могу сделать так, чтобы использование инициализатора объекта в производном классе SpecificRow
допускало тип MyEnum
? Похоже, он должен увидеть метод Add
в SpecificRow
.
Обновление: я реализовал дополнительный интерфейс на SpecificRow
, и теперь он выглядит так:
public class SpecificRow : Row, IXmlSerializable,
System.Collections.IEnumerable,
ICollection<KeyValuePair<MyEnum, string>>
{ }
Однако я все еще получаю ту же ошибку Add
. Я собираюсь попробовать реализовать IDictionary<MyEnum, string>
следующим.