Для моего экзамена по программированию мне пришлось защищать код, который я написал. Одна из линий:Выполняется ли проверка того, является ли строка пустой или пустой?
if(app.Logourl == "" || app.Logourl == null)
Он спросил меня, существует ли разница между нулем и пустой строкой. Я сказал ему, что разница в том, что null
означает, что он не указывает ни на что, поэтому он не создается, но пустая строка.
После экзамена я подошел к нему и спросил его, правильно ли я, так как я увидел смешной взгляд на его лице. Он сказал мне, что это правда, что они разные, но порядок, в котором я проверил значения, был неправильным.
Теперь через несколько дней я верю, что нет ничего плохого в заказе. Я прав?
TL; DR
является
if(app.Logourl == "" || app.Logourl == null)
эквивалентно
if(app.Logourl == null || app.Logourl == "")
Вместо этого использовать 'String.IsNullOrEmpty';) –
Farhad прав, конечно. Кроме того, для микро-микро-оптимизации, условие, которое, по вашему мнению, чаще всего будет истинным во-первых, чтобы оценка короткого замыкания пропустила последнюю проверку в большем количестве случаев. –
Как указывали другие, это все равно в вашем фактическом случае. Тем не менее, я бы предложил пойти с маршрутом, предложенным вашим учителем, и привыкнуть к тому, чтобы всегда проверять «нуль». Во многих практических случаях, как указано в ответах, оно * будет * иметь значение и начиная с проверки «null» просто уменьшит ваши ошибки в долгосрочной перспективе. Везде, где среда предлагает специализированную функцию, такую как 'IsNullOrEmpty()', используйте это, а не, конечно, но вы будете использовать один и тот же шаблон во многих других случаях, когда вам нужно вручную закодировать проверки. –