Лучший код - запретить null
(вместо того, что вы делаете). Это не всегда возможно (иногда важно обрабатывать null
осмысленно), но в большинстве случаев это так.
Тогда все, что вам нужно сделать (в защитном кодировании), это добавить null
проверку и выдать исключение:
if (arg == null)
throw new ArgumentNullException("arg");
Многие (если не большинство) методов в .NET Framework и в хороших библиотеках делают это таким образом.
Кроме того, sender
события не должно никогда быть null
, и я бы сказал, что проверка его избыточна. Если на это событие будет передано null
, то с вашим кодом что-то серьезно не так.
То, как вы обрабатываете null
(молча глотая его и ничего не делая), может маскировать серьезные ошибки в приложении и редко, если вообще когда-либо, подходит. Ошибки в коде должны вызывать подозрительное поведение, а не быть скрытыми.