中的數組值我遇到了一些我無法理解的奇怪行爲,不知道有人能幫助我理解它。
的follwing方法收到
一個對象數組,並在陣列成員的一些變化更改方法
public static void adjustRow(object[] row, String column)
{
Double price ,units ,invest;
if (!(Double.TryParse(row[3].ToString(),out price)
& Double.TryParse(row[4].ToString(),out units)
& Double.TryParse(row[5].ToString(),out invest)))
return ;
switch (column)
{
case INVEST: row[4] = Math.Round(invest/price,2); break;
case UNITS:
case PRICE: row[5] = Math.Round(units * price,2); break;
}
}
的follwing方法調用上述方法:
void editGrids_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
DataGridView gridView = sender as DataGridView;
DataTable source= null;
if (gridView != null)source = gridView.DataSource as DataTable;
if (source != null)
Systm.adjustRow(source.Rows[e.RowIndex].ItemArray,gridView.Columns [e.ColumnIndex].HeaderText);
}
我預期輸入數組中的值將是在第一個方法範圍外改變,但實際結果是值保持不變,任何解釋?
謝謝葉蘭
你能解釋一下爲什麼嗎?數組沒有引用他保存的值? 我描述的行爲並不適合示例4在你的鏈接和衝突我不明白 – Eran 2010-01-16 15:35:36
除非我錯過了什麼,你給的鏈接說,Eran的代碼*應該*改變數組。 – sepp2k 2010-01-16 15:41:27