Ну, Main
определено так, чтобы никогда не вызываться с параметром null
. Если он действительно каким-то образом получает нулевой параметр, то ваша среда настолько нарушена, что все ставки сняты, независимо от того, что вы делаете, поэтому на самом деле ничего не получится, проверив null
.
С другой стороны, если вы делаете проверку на null, то читатели и сопровождающие код должны будут понять, почему. Почему первоначальный программист поставил такую бесполезную проверку? Он знал что-то, чего не знаем мы? Мы не можем просто удалить его, потому что он мог обнаружить какую-то странную ошибку!
Другими словами, вы усложняете свою программу и сбиваете с толку будущих читателей кода. Не делай этого. Этим будущим пользователем можете быть вы. Порадуйте себя в будущем и напишите код, который имеет смысл.
Однако в ситуациях, когда такая проверка нуля имеет смысл, она должна быть крайним левым условием.
В таком тесте: args.Length == 0 || args == null
, args.Length
оцениваются сначала, и если это не удается, args
сравнивается с null
. Другими словами, если args
равно null, ваш код выдаст исключение. Должно быть args == null || args.Length == 0
person
jalf
schedule
19.03.2012
args
будетnull
? Проверкаargs.Length
вызоветNullReferenceExcetpion
- person Greg B   schedule 19.03.2012args
действительно равно нулю, ваше первое условие выдастNullReferenceException
. - person Ioannis Karadimas   schedule 19.03.2012