我正在尝试编译这个关于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;
}
}
}
答案 0 :(得分:3)
CArray nums = new CArray(50); //since 50 is the length of your array
答案 1 :(得分:1)
你的CArray类中有一个构造函数,它以整数作为参数(int size)。您没有将该值传递给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。我不认为这是你想要的^^