Каждый разработчик часто сталкивался с приведенным ниже сценарием при написании бизнес-логики. Примеры здесь написаны на C #, но применимы к любому языку, который вы используете.

Представим, что вы запрашиваете что-то из базы данных и вам нужно найти studentId первого или, возможно, отфильтровать учащегося по имени.

var students = _studentRepository.GetAllStudents();
var studentId = students.FirstOrDefault().StudentId;

or

var studentName = students.Select(student=> student.Name.Equals(“John”,StringComparison.OrdinalIgnoreCase);

Вы заметили какую-либо проблему в приведенном выше коде? Нет? Даже я не знал, что здесь есть PosibleNullReference

FirstOrDefault возвращает значение типа по умолчанию, если ни один элемент не соответствует предикату. Для ссылочных типов это null. Это причина этого исключения.

Как решить эту проблему?

Вместо прямого поиска имени с помощью FirstOrDefault () вы можете изменить его следующим образом, и предупреждение NullReference исчезнет.

Советы профессионалов по читаемому коду

Представьте, что вы нашли что-то в базе данных или получили что-то из API, вам нужно проверить, есть ли его Null / NotNull / Empty / EmptyOrNotNull, и т. Д.

Мы делали это раньше, но чаще всего мы забываем это проверить перед тем, как приступить к бизнес-логике, и тонна циклов if (something! = Null) накапливается.

разрешение

Мы написали такой метод расширения

public static bool IsNotNull(this object obj){
return obj != null;
}

Поэтому всякий раз, когда мы выполняем вызов API или извлекаем что-то из базы данных, все, что нам нужно сделать, это

var students = _studentRepository.GetAllStudents();
if(students.IsNotNull()){
//do something
}

Он более читабелен, а также станет незабываемым в будущем, поскольку наш разум автоматически запомнит те мелочи, которые можно прочитать.

Сила метода расширения в том, что он должен быть универсальным и не привязанным к одному конкретному проекту или области. Напишите его в общей области, чтобы им можно было поделиться в разных проектах и ​​принести вам пользу.

Вывод

Напишите больше методов расширения для обработки логики малого бизнеса, таких как проверка на наличие пустых / нулевых значений / обрезка строки и т. Д. Это делает базу кода более читаемой и удобной в обслуживании.

Спасибо за чтение. Следите за обновлениями блогов.