0

我想创建 Massive 类并添加一个添加两个质量的方法。但是我的类实例的属性 Length 不起作用。

public static void Add(Massiv mas1, Massiv mas2, ref Massiv mas3)
    {

        if (mas1.Length != mas2.Length)
        {
            Console.WriteLine("Error!"); return;
        }

        for (int i = 0; i < mas.Length; ++i)
        {
            mas3[i] = mas1[i] + mas2[i];
        }
    }

如何让它在我的课堂上可用?这是我的代码。

class Massiv
    {
    public Massiv(int n)
    {
        mas = new int[n];
        Random rand = new Random();
        for (int i = 0; i < mas.Length; ++i)
        {
            mas[i] = rand.Next(0, 10);
        }
    }

    public void ShowAll()
    {
        Console.WriteLine("Massive: ");
        foreach (var elem in mas)
        {
            Console.Write(elem + " ");
        }
        Console.WriteLine();
    }

    public void ShowElement(int index)
    {
        try
        {
            Console.WriteLine("mas[{0}] = {1}", index, mas[index]);
        }
        catch (IndexOutOfRangeException)
        {
            Console.WriteLine("Error!");
        }
    }

    public static void Add(Massiv mas1, Massiv mas2, ref Massiv mas3)
    {

        if (mas1.Length != mas2.Length)
        {
            Console.WriteLine("Error!"); return;
        }

        for (int i = 0; i < mas.Length; ++i)
        {
            mas3[i] = mas1[i] + mas2[i];
        }
    }

    public int this[int index]
    {
        get { return mas[index]; }
        set { mas[index] = value; }
    }

    private int[] mas;
}

}

4

3 回答 3

3

似乎您没有声明任何Length属性,因此,编译器不可能知道一个。

基本上,将其添加到您的课程中:

public int Length {
    get {
    }
    set {
    }
}

在 getter 中,您需要返回属性的值,而在 setter 中,您必须更改它。

在这种情况下,您似乎想要检索内部数组的长度。如果您不需要写访问权限,则可以跳过该set部分:

public int Length {
    get {
        return mas.Length;
    }
}
于 2013-07-09T07:36:42.037 回答
2

只需将此属性添加到您的课程中:

public int Length { 
    get { return mas.Length; } 
}

请注意,它只有一个get访问器,使其只读(您似乎不需要写访问权限,因为您在构造函数中初始化了私有数组)。

于 2013-07-09T07:37:08.580 回答
0
public int Length {
    get {
        return mas.Length;
    }
}
于 2013-07-09T07:36:50.477 回答