[英]C# properties, constructor,
我想創建繪制板的類。 我寫了這樣的代碼(有效):
{
public class Map
{
public int rows { get; set; }
public int cols { get; set; }
public int[,] grid { get; set; }
public Map(int rows, int cols)
{
this.rows = rows;
this.cols = cols;
this.grid = new int[rows, cols];
}
public void printBoard()
{
for (int r = 0; r < rows; r++)
{
for (int c = 0; c < cols; c++)
{
Console.Write(grid[r, c] + "");
}
Console.WriteLine();
}
}
}
//Program.cs:
Map map = new Map(2, 2); map.printBoard();
我有問題: 1.我可以創建數組作為屬性,然后像上面的代碼一樣在構造函數中初始化它(idk如何調用它)? 我在這里讀到我不應該這樣做,但也許事實並非如此https://stackoverflow.com/a/18428679 2. 如果沒問題,寫這樣的代碼是不是很好的做法,也許我可以寫得更好?
正如您鏈接到的答案中所述,屬性通常不應返回數組,因為這會將類的內部結構暴露給外部,而無法控制數組的一部分。 您聲明屬性的方式,客戶端可以將任意值插入數組,而您的類無法執行任何驗證。
按照慣例,屬性也應該使用大寫名稱。 但就您而言,正確的做法是將所有屬性字段設為私有。 然后添加一個索引器來更新數組(請注意,甚至可以從外部更改rows
和cols
,這肯定會導致未定義的行為)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.