IDictionary с нулевым ключом - опечатка MSDN или что-то еще?

IDictionary‹TKey, TValue›

ArgumentNullException — key имеет значение null.

Потом в комментарии...

Реализации могут различаться в зависимости от того, позволяют ли они ключу быть нулевым.

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


person myermian    schedule 12.09.2011    source источник


Ответы (2)


В документации говорится: «Если вы получите ArgumentNullException, то key был нулевым».

В нем не говорится: «Если key имеет значение null, вы получаете ArgumentNullException». Это было бы ошибкой обратной логики.

Полное условие будет:

«Тогда и только тогда, когда оба key имеют значение null и контейнер не поддерживает ключи null, вы получаете ArgumentNullException».

person Ben Voigt    schedule 12.09.2011
comment
кстати, я заметил, что логическая ошибка является наиболее распространенной причиной недопустимых аргументов (просто в жизни, а не в программировании) - person Aaron Anodide; 13.09.2011

Таблица, на которую вы смотрите, сопоставляет Результаты с Условиями, которые их вызвали.

В этом случае исключение вызвано нулевым аргументом.

person Aaron Anodide    schedule 12.09.2011