Будет более эффективно и перспективно использовать локальную переменную / кеширование. Однако, различие не будет огромным, если вы не получите к нему доступ, например, в десятки или сотни раз IMO.
Могу ли я предложить:
return this._localFoo ?? (this._localFoo = Session["MySessionFoo"] as Foo);
this
является необязательным, но это немного аккуратнее, опять же только IMO.
Примечание: хорошее использование оператора coalesce ??
и тот факт, что result
выражения присваивания совпадает с присваиваемым значением.