Я решил похожую проблему (где я не хотел использовать display: inline-block
, потому что элемент был отцентрирован), добавив тег span
внутри тега div
и переместив форматирование CSS из внешнего [div
тег к новому внутреннему тегу span
. Просто добавьте это как другую альтернативную идею, если display: inline block
не подходит для вас.
Да, CLR будет встраивать это в "нормальных" случаях. Однако в некоторых ситуациях встраивание не происходит - включая все, что происходит от MarshalByRefObject
(потому что это может быть прокси времени выполнения).
Правила того, что получает встроенные зависят от конкретной среды CLR, которую вы используете - x64 против x86, версии и т. д. Тривиальные свойства могут быть встроены с такой же вероятностью, как и вы:)
(По некоторым причинам я видел тривиальное свойство медленнее, чем доступ к полю для удвоений в прошлом ... могут быть некоторые ограничения вокруг значений, превышающих исходный размер слова.)
В .Net 2.0, методы (включая методы получения и установки свойств) были бы встроены, если бы они имели менее 32 байтов.
.Net 3.5 JIT'r немного умнее, так что это зависит от обстоятельств. Он определенно может встроить его.
Для некоторого обсуждения этого см. Встраивать или нет встраивать: вот в чем вопрос .