Я пишу плагин для CAD-системы. К сожалению, эта система имеет плохой API. Итак, я написал расширение для класса Vector3d. Здесь (C# код):Значения не меняются в методе расширения (C#)
/// <summary>
/// Normalizes the vector by dividing it’s all coordinates with the vector's norm.
/// </summary>
/// <param name="v">
/// This vector.
/// </param>
/// <returns>
/// Returns vector's norm.
/// </returns>
public static double Normalize(this Vector3d v)
{
var norm = v.Norm();
var invNorm = 1.0/norm;
v.X *= invNorm;
v.Y *= invNorm;
v.Z *= invNorm;
return norm;
}
Но у меня есть проблема: когда этот метод выполняет то координаты вектора в изменении. Но, когда метод был выполнен, векторные координаты имеют исходные значения.
У меня нет проблем с другими методами расширения.
Позвольте мне угадать, 'Vector3d' является структурой. – leppie