Знаете, вот эта штука с увеличенной скоростью паттерн матчинга становится для меня еще более загадочной.
Я только что прогнал оба варианта кода через Sharplab.io чтобы посмотреть какой шарповый код сгенерирует компилятор и знаете что, вот так он выглядит:
Вот так:
public bool PatternMatchingExpressionScenario()
{
PersonRecord personRecord = person;
return (object)personRecord != null && personRecord.Name != null && personRecord.Age < 9;
}В целом ничего не поменялось, ну кроме разве что копирование переменной для тред-сейфности добавилось, ну и привидение к типу object. Наверное в этом и кроется вся загадка. 🦆
#бенчмарки