@SalavatSU
Начинающий бэк программист

Игнорируется ли компилятором в c# присвоение переменной ее же значения в сложном выражении?

Это вопрос не из необходимости, а из чистого любопытства. Я еще совсем новичок и в процессе работы встретил интересное использование тернарного оператора. Для контекста вопроса добавлю, что код был в сервисе веб API бэка:

//некий условный класс Модели
pulic class someModel 
{
    public Guid Id { get; set; }
    public int someField { get; set; }
   //...
}

//код из сервиса:

someClass someInstance = await _context.someField.FirstOrDefaultAsync(e => id == 1); //условное обращение к бд
int someVariable = 15;
someVariable = someInstance is null ? someVariable : (someInstance.someField <= 0 ? someVariable : someInstance.someField);


Здесь, как я понял, логика такова, что модель могда не найтись, а значение свойста могло быть пустым. И после этого появились вопросы: "При присвоении переменной своего же значения будет ли игнорировать его компилятор? Было бы лучше заменить тернарный оператор If esle конструкциями?". В интернете ответа найти, к сожалению, не получилось.
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
Ну самое простое и полезное что вы можете сделать - это посмотреть результат компиляции этого выражение в IL. И да, скорее всего само выражение будет упрощено компилятором
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы