C# 使用类'&引用;索引;?
如何编写代码,使用X,Y和Z坐标将两个向量a,b相加。 下面的代码显示了我被击中的确切位置C# 使用类'&引用;索引;?,c#,C#,如何编写代码,使用X,Y和Z坐标将两个向量a,b相加。 下面的代码显示了我被击中的确切位置 public Vector(float _x, float _y, float _z) { float X, Y, Z; X = _x; Y = _y; Z = _z; Vector _vector = new Vector(X, Y, Z); } public static Vect
public Vector(float _x, float _y, float _z)
{
float X, Y, Z;
X = _x;
Y = _y;
Z = _z;
Vector _vector = new Vector(X, Y, Z);
}
public static Vector operator +(Vector _a, Vector _b)
{
return new Vector(); //_a.X + _b.X , _a.Y + _b.Y, _a.Z + _b.Z
}
从传入参数创建属性。然后你可以在课堂上的任何地方使用它们:
public class Vector
{
public float X { get; set; }
public float Y { get; set; }
public float Z { get; set; }
public Vector(float _x, float _y, float _z)
{
X = _x;
Y = _y;
Z = _z;
}
public static Vector operator +(Vector _a, Vector _b)
{
return new Vector(_a.X + _b.X, _a.Y + _b.Y, _a.Z + _b.Z);
}
}
注:
- 似乎您不理解局部变量和类字段/属性之间的区别。当您在方法或构造函数中声明变量时,这些变量及其值将在方法调用后消失。在类/结构体中声明变量时,这些值将在对象生存期内可用
- 看起来你们不明白构造器的用途。它不是用于创建类型为的新实例,而是用于初始化已创建的实例。您当前的代码将因StackOverflow异常而失败,因为调用构造函数来初始化新向量实例的值。若您在构造函数中创建新的向量实例,那个么将调用构造函数来初始化那个新实例。等等,直到例外
- 不要在变量或参数名中使用奇怪的下划线
public struct Vector
{
public float X { get; }
public float Y { get; }
public float Z { get; }
public Vector(float x, float y, float z)
{
X = x;
Y = y;
Z = z;
}
public static Vector operator +(Vector a, Vector b)
{
return new Vector(a.X + b.X , a.Y + b.Y, a.Z + b.Z);
}
}