Ну, вы предотвращаете большинство видов оптимизации. Во-первых, JITTER может не знать, какая реализация будет вызвана, (И он не может, поскольку вы можете использовать Mock, правильно?) Итак, все эти аксессоры свойств, которые были бы встроены, будут реальными звонит сейчас. Thx to inline, простые свойства не будут добавлять реальные издержки во время выполнения. Виртуальные свойства не будут встраиваться, поэтому они и делают.
Это была сторона эффективности вещей, другая проблема заключается в том, что вы не можете доверять свойствам работать, как вы думаете, они работают. Каждое свойство может быть переопределено. Даже самим собой, потому что «в этот раз это действительно имело смысл, верно?». Таким образом, вы обнаружите, что чаще проверяете дерево вызовов, чем обычно, чтобы проверить, какие реализации применимы к коду, над которым вы работаете.
Вы считаете, что ваш класс реализует интерфейс, который определяет все эти методы? Таким образом, ваш Mock основан на интерфейсе, и вам не нужно явно отмечать все ваши методы с помощью ключевого слова virtual ... – mezoid
Это принесло бы большинство недостатков в том, чтобы быть виртуальным. Однако, это делает вещь более гибкой, поэтому в конце дня, это может быть лучший выбор в конце концов. –