Даже если он выглядит как метод экземпляра, он работает как статический метод - поэтому arg0
(this
) не ref
- он передается по значению, следовательно, вы мутируют копию структуры. Поскольку вы не можете использовать ref
в первом аргументе метода расширения, вам придется вместо него return
:
public static Vector2 SetToThree(this Vector2 vector)
{
vector.X=3;
return vector;
}
и использование:
v = v.SetToThree();
Так что, возможно, оно того не стоит ...