日期:2014-05-17  浏览次数:20828 次

请教一个简单的传值问题,请老师们指导

public static DataTable calculate(DataTable dt_Source)
{
//这里有部分代码按照一定条件删除dt_Source中部分行

.....
.....
.....

return dt_Result
}

private void button1_Click(object sender, EventArgs e)
{
DataTable dt_Source = Csv(" + csvpath + ");//将csv文件导入datatable
//这里有代码输出显示dt_Source
DataTable dt_Result = calculate(dt_Source);
//这里有代码输出显示dt_source
//但这里显示的dt_source是经过删除的了,现在的问题是怎么
//让dt_Source传入calculate修改之后不影响原值?我现在的方法是建立一个dt_temp在传入之前保存
//原值,之后再dt_Source.clear();dt_Source = dt_temp.copy();但这样效率很低。
}

------解决方案--------------------
新建个DataTable。把计算结果放进去。不用动原来的datasource
------解决方案--------------------
保存原值是必须的,但你可以直接在最后 
dt_Source = dt_temp;就可以了
------解决方案--------------------
。。。DataTable传递的是引用,所以值会变。。迷糊了悲剧