Один класс, который я пишу, реализует IDictionary<string, object>
. В моей реализации CopyTo
я хотел бы использовать кодовые контракты: например, Contract.Requires<ArgumentNullException>(array != null)
.
Но я получаю это предупреждение (с некоторыми пространствами имен, удаленными для удобства чтения):
Метод 'LuaDictionary.CopyTo(KeyValuePair<String,Object>[],Int32)
' реализует интерфейсный метод 'ICollection<KeyValuePair<String,Object>>.CopyTo(KeyValuePair<String,Object>[],Int32)
', поэтому не может добавить Requires
.
Я вижу, что есть некоторые связанные вопросы, но все они, похоже, имеют отношение к интерфейсам, которые находятся под контролем пользователя. Очевидно, что IDictionary<T, U>
не находится под моим контролем, поэтому я не могу комментировать его с помощью ContractClassFor
или чего-либо подобного.
Так я просто не могу использовать здесь кодовые контракты? Если так ... большой облом ...