Предполагая, что у вас есть неизменные типы, и у вас есть весь ваш код до даты до С# 7.3, а ваши методы используют ключевое слово in
для входных данных
Почему бы вам использовать класс вместо структуры readonly?
Недостаток использования структур заключался в том, что копирование было дорогостоящим, но при условии, что вы предотвращаете любую копию (защитную копию компилятора или выражаете кодом), readonly structs позволяет вам копировать ссылку только (как это делают классы) и избегать распределения кучи и давления на мусор коллектор.
Исключая особые случаи (которые, я думаю, это может быть очень большой объект, который не будет помещаться в стек), вы бы использовали readonly struct как первый выбор?
Меня интересует случай, когда они используются в качестве контейнеров данных.