我正在寻找一种使用[]
初始化包含数组的类的方法我的类包含一个私有数组和一个索引器,以便我可以使用[]获取和设置数组元素但是我希望将一个int传递给表示数组大小的构造函数,使用语法Buffer buf = new Buffer [4]但收到错误。
例如,我想用
设置我的缓冲区的大小Buffer buf = new Buffer[4]
class Buffer
{
private char[] buffer;
public Buffer(int size) // Constructor
{
buffer = new char[size];
for ( int index = 0; index < size ; index++ )
{
buffer[index] = 'c';
}
}
#region Methods
public char this[int index]
{
get
{
return buffer[index];
}
set
{
buffer[index] = value;
}
}
public void Display()
{
foreach (char pixel in buffer)
{
Console.Write("{0} ", pixel);
}
Console.Write("\n\n");
}
#endregion
}
答案 0 :(得分:3)
您无法覆盖数组创建的语法(由于索引器,我认为您将构造函数混淆为new
的一部分)。
只需使用您的构造函数:
Buffer buffer = new Buffer(4);
buffer[0] = 'a';
答案 1 :(得分:-1)
这是你能做的最好的事情:
Buffer b = new Buffer(new int[4]);
new-expression中的括号总是创建一个数组,没有例外。