假设有一个Foo
8-16 字节的结构。Add()
它对另一个结构的所有值都有一个静态方法,性能是最重要的。我见过很多静态方法,如下所示:
public static Foo Add(Foo fooA, Foo fooB)
{
var newVar = fooA.Var + fooB.Var
return new Foo(newVar);
}
我已经测量到它可以通过仅引用参数来更快:
public static Foo Add(ref Foo fooA, ref Foo fooB)
{
var newVar = fooA.Var + fooB.Var;
return new Foo(newVar);
}
很公平。但是,如果我避免创建一个新实例而是修改了第一个参数,会不会令人困惑?
public static void Add(ref Foo fooA, ref Foo fooB)
{
fooA.Var += fooB.Var;
}
我无法像我想要的那样雄辩地提出我的问题,但我希望它会被理解。
编辑:或者,如果需要这样的东西,该方法首先不应该是静态的。这是一个正确的断言吗?