C# 使用类'&引用;索引;?

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

如何编写代码,使用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 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异常而失败,因为调用构造函数来初始化新向量实例的值。若您在构造函数中创建新的向量实例,那个么将调用构造函数来初始化那个新实例。等等,直到例外
  • 不要在变量或参数名中使用奇怪的下划线

请不要发布屏幕截图,最好将您的代码粘贴到此处。复制粘贴的代码将比照片更能解释您的问题。此代码将出现StackOverflow异常-您在创建新向量时创建新向量,而在创建新向量时..请使用更具描述性的标题改进您的问题,以降价方式显示示例代码并显示所需结果。“我的代码将比我能解释的更多。”-事实上…你的代码什么也解释不了。它在结构中,而不是在类中,sadly你的标题说它是一个类。。。但代码仍然适用于结构。
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);
    }
}