中的数组值我遇到了一些我无法理解的奇怪行为,不知道有人能帮助我理解它。
的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