В настоящее время я читаю Oreilly's Learning XNA 4.0 и заметил, что автор склонен создавать структурные значения, такие как Vector2
или ] Rectangle
несколько раз без учета производительности.
Например, метод SquareCollision ()
, который проверяет столкновение между двумя игровыми объектами, создает два Rectangle
s каждый раз, когда он вызывается, вместо того, чтобы просто удерживать каждый игровой объект собственное поле Rectangle
и сравнивайте поля, не создавая дополнительных значений структуры.
Я видел этот шаблон много раз и во многих местах, и это заставило меня задуматься:
Является ли создание структурных значений незначительным в C #?
Действительно ли это подпадает под раздел микрооптимизации?
Возможно, поскольку мой опыт в основном связан с Java, концепция ValueType
s мне кажется странной, но мне кажется, что повторное создание значения из структуры (и вызов ее конструктора) несколько раз кажется гигантской тратой Ресурсы.