четверг, 15 октября 2009 г.

Работа с Dictionary. Обнуление ключа.

Что происходит, когда мы вызываем:
dictionary[key] = null;



Что произойдёт если ключа "key" нет в Dictionary?
Мой коллега долго искал баг в программе, потому что был уверен, что если в словаре нет ключа "key", то программа вернёт ошибку. Из-за этого он не обращал на этот вызов внимания.
А вот что происходит на самом деле:
Dictionary проверяет наличие ключа и если не находит, то _создаёт_ его! И присваивает указанное значение. В нашем случае получается пара "key; null" .

Мораль сей басни такова: внимательнее обращайтесь со свойствами, реализация которых скрыта! И с Dictionary в частности. =)

Читать дальше......