返回結構的財產,我得到了下面的錯誤,我從德國翻譯:無法分配從法
錯誤BC30068:表達式是一個值,不能作爲賦值目標。
我努力做到以下幾點:
sheet.Cells(row, col).Value = newVal ' this is VB
當我宣佈細胞:
public Cell Cells(int x, int y) // this is C#
{
return new Cell(this, x, y);
}
public struct Cell
{
Worksheet ws;
int x;
int y;
public Cell(Worksheet ws, int x, int y)
{
this.ws = ws;
this.x = x;
this.y = y;
}
public object Value
{
get { return ws.GetCellValue(x, y); }
set { ws.SetCellValue(x, y, value); }
}
}
我怎樣才能解決這個問題?我不希望Cell是一個類,而是一個結構,因爲否則任何訪問都會在堆上創建一個新對象。當然,我可以緩存所有創建的單元對象,但是這可能會引入錯誤並浪費大量內存和新的間接層。
有沒有更好的方法來做到這一點?
Duplicate:http://stackoverflow.com/questions/2082900/c-getter-setter-problem總結:你可以做的事情不多。要麼需要用新值實例化一個新結構,並將其賦值給該屬性,或者爲父類中的結構的每個字段創建訪問器,並分別修改它們。 – 2010-02-25 12:04:46
有趣的問題,而不是一個重複的恕我直言。單元格可能看起來像編譯器的可變結構,而實際上它不是(假設Worksheet是一個類)。 – Henrik 2010-02-25 13:11:46