Вы не опубликовали код для своего метода HashHelper, но, поскольку он должен быть небольшим и быстрым, да, вполне вероятно, что он будет встроен.
И, да, оптимизатор JITвполне способен вычислять выражения во время компиляции и заменять код простым постоянным значением.Но этого не произойдет, если вы используете элемент readonly .Потому что значение, которое он имеет, определяется конструктором.Оптимизатор не учитывает код в других методах, чтобы угадать, имеет ли поле известное значение.Он должен иметь возможность определять значение при компиляции GetHashCode.
Вы можете получить это, если используете const для инициализации поля только для чтения.И используйте тот же самый констант в реализации GetHashCode.Это довольно некрасиво.Учитывая очень ограниченную выгоду, которую вы получите от этой микрооптимизации, это, вероятно, не то, что вы должны учитывать.Возможная победа не больше, чем наносекунда или около того.Но, скорее всего, ноль, потому что оптимизатор заменит xor на mov.