2012-07-24 48 views
-4

我正在尋找一種方法來初始化使用[]如何創建一個類的構造函數,採用[]反對()用於initalization

我的類包含一個索引一個私人數組包含數組的類,所以我可以使用[]獲取和設置數組元素,但是我希望使用語法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

我想知道是否有可能像使用數組一樣使用我的類,儘管在這種情況下它可能看起來毫無意義,我對此緩衝區有未來計劃。 – meschael 2012-07-24 18:56:49

回答

3

您不能改寫數組創建語法(我相信你已經混淆你的構造函數作爲是new部分原因是由於索引器)。

只需使用你的構造:

Buffer buffer = new Buffer(4); 
buffer[0] = 'a'; 
+0

謝謝,我將以這種方式創建我的緩衝區。 – meschael 2012-07-24 18:53:05

-1

這是你能做的最好的:

Buffer b = new Buffer(new int[4]); 

支架在一個新的表達總是創建一個數組,沒有例外。

相關問題