Так как это помечено как «производительность», вот мой общий совет по таким темам, который я все еще считаю действительным здесь:
- Мера, мера, мера
- Не занимайтесь микрооптимизацией, если это не последнее, что вы можете сделать, и все же вам нужно вытащить несколько циклов из цикла ядра
Расширить:
Вполне возможно, что в вашем коде есть вещи, которые делают такие советы по микрооптимизации недействительными или неоптимальными, поэтому ваш лучший выбор в отношении производительности - просто измерить его. Убедитесь, что вы измеряете достаточное количество итераций цикла, так как измерение того, что небольшой код 1 раз будет мешать всем остальным вещам, которые ваша машина делает недействительным для всего упражнения.
Что касается микрооптимизации, не беспокойтесь об этом. Выберите тот, который вам (и тому, кто еще будет поддерживать код), наиболее удобен, и подумайте о микрооптимизации, если и когда вам это действительно нужно.
Лично я часто пишу первое, т. Е.
if (o ?? 0 == 0)
или, в случае строк:
if ((s ?? string.Empty).Length == 0)
Однако, с точки зрения читабельности и «того, что выглядит лучше», это сложная проблема. Иди с тем, что ты хочешь, чувствуешь себя комфортно и переходи к более крупным проблемам.
Edit , Хорошо, я перестал думать где-то перед последним примером кода. Я объединил две разные вещи, которые я делаю:
- Я никогда не оставляю строковые свойства и поля как
null
, если это не полезно
- С 1. Я могу сделать
if (PropertyName.Length == 0)
Конечно, в этом конкретном примере я бы использовал один из следующих двух:
if (string.IsNullOrEmpty(s))
if (string.IsNullOrWhiteSpace(s))
(только в 4.0 и только если вам нужно)