在 C# 7.2 中,只读结构是否总是像存在“in”参数一样传递给函数?如果不是,在什么情况下复制内存是有用的,因为它是只读的?
我有一个只读结构:
public readonly struct Vec2
{
public readonly double X;
public readonly double Y;
}
那么当调用数十亿次时,这两种方法之间是否会有性能差异:
public double Magnitude1(Vec2 v)
{
return Math.Sqrt(v.X*v.X + v.Y*v.Y);
}
public double Magnitude2(in Vec2 v)
{
return Math.Sqrt(v.X*v.X + v.Y*v.Y);
}
如果是这样,为什么编译器不识别 Vec2 是只读结构,而只是像“in”存在一样传递它?是否有一个实例,您可能想要传递一个没有“in”修饰符的只读结构?
人到中年有点甜
相关分类