首页 > 解决方案 > 在 getter 中返回新结构是否会降低性能?

问题描述

我有一个公共吸气剂返回一个永远不会改变的结构:

public Vector3 Center => new Vector3(0.5f, 0.5f, 0.5f);

它不是静态的,因为它可能会在未来发生变化,但现在它始终是相同的值。

总是创建一个新的 Vector3 (一个结构),而不是做这样的事情,是否有性能损失:

static readonly Vector3 half = new Vector3(0.5f, 0.5f, 0.5f);
public Vector3 Center => half;

我知道结构是按值返回的,所以值复制总是会发生的。我也知道性能上的任何差异都会很小。我只是想知道额外的建设。这可能是编译器可以识别和优化的东西吗?

标签: c#c#-7.0

解决方案


每次新建对象时都会产生计算成本。它的成本程度是有争议的。


推荐阅读