При разработке математической библиотеки для SlimDX мы обнаружили, что в платформах до .NET 3.5 SP1 использование полей для элементов математических типов (таких как X, Y, Z для Vector3) приводило к непропорциональному увеличению производительности по свойствам. Другими словами, разница была заметна для небольших математических функций, которые активно обращались к свойствам.
Это было улучшено с .NET 3.5 SP1 (см. JIT inling ). Хотя я полагаю, что JIT до этого все еще будет встроять небольшие методы (в конце концов, свойства - это просто методы), в более ранних платформах есть ошибка, которая препятствовала встраиванию методов, которые принимают или возвращают типы значений.
Обратите внимание, что разница, когда она есть, все еще довольно мала. Я бы все же решил использовать свойства во всех случаях, кроме наиболее критичных для производительности.