-2

我正在尝试在 Visual Studio 2010 中编译有关数组和类的代码,但是在运行它时遇到问题(consoleapplication.Carray 不包含采用 0 个参数的构造函数)正在显示,有人可以告诉我我错了吗做代码只显示和数组,或者有什么办法可以做到吗????代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            CArray CArray;
            CArray nums = new CArray();
            for (int i = 0; i <= 49; i++)
                nums.insert(i);
            nums.displayElements();
        }
    }

    class CArray
    {
        private int[] arr;
        private int upper;
        private int numElements;
        public CArray(int size)
        {
            arr = new int[size];
            upper = size - 1;
            numElements = 0;

        }
        public void insert(int item)
        {
            arr[numElements] = item;
            numElements++;
        }
        public void displayElements()
        {
            for (int i = 0; i <= upper; i++)
                Console.Write(arr[i] + " ");

        }
        public void clear()
        {
            for (int i = 0; i <= upper; i++)
                arr[i] = 0;
            numElements = 0;

        }
    }
}
4

2 回答 2

3

好的,几个问题。一个你有一个请求数组大小的构造函数,而你的主程序没有将它提供给构造函数。这也是有问题的,因为您在 displayelements() 循环中使用了数组的大小。这不会编译,因为您的构造函数需要一个参数。您至少需要更改您的 Main() 程序,以便它将数组的大小提供给您在类 CArray 中定义的构造函数。更改以下内容:

            CArray nums = new CArray(50); //since 50 is the length of your array
于 2012-09-09T19:09:03.487 回答
1

您的 CArray 类中有一个构造函数,该构造函数将整数作为参数(int 大小)。您没有将该值传递给您的 main 方法中的 CArray 类。

static void Main()
     {
      int size = 33; //<-- declare an integer "size"
      CArray nums = new CArray(size); // <-- make an array with a size of "size", in this case, 33
      for (int i = 0; i <= size-1; i++) // <-- fill the integer with "size" numbers
      nums.insert(i);
      nums.displayElements();                  
     }

我也不会硬编码您在示例中发布的 for 循环中的大小。现在你说它(int i = 0; i <= 49; i++)基本上忽略了你应该传递给构造函数的数组的大小。如果您使用我发布的示例,您将始终拥有一个 x 元素数组。如果你留下这个i <= 49位并且你的大小是 100,那么你的 displayElements 方法将打印出从 0 到 49 的数字,然后是一大堆 0。我不认为那是你想要的^^

于 2012-09-09T19:11:58.273 回答