查询对象?

时间:2013-03-09 04:48:33

标签: c# ado.net

案例1:

for(int =0;i<1000;i++)
{
 Datatable dt=new Datatable();
 //Perform some operation
 dt.Dispose();
}

案例2:

Datatable dt=new Datatable();
for(int =0;i<1000;i++)
{
 //Perform some operation
 dt=null;
}

我想在循环中使用数据表,这种情况会更有效: 每次在循环中创建和销毁一个对象,或者在循环之前创建它?

3 个答案:

答案 0 :(得分:0)

试试这个

编辑:如果你想保持相同的结构,那么你可以清除每个循环上的项目

Datatable dt =new Datatable();
//add columns to your datatable
for(int i=0;i<1000;i++)
{    
  dt.Items.Clear();
  //your other code
}

答案 1 :(得分:0)

案例2效率更高,但应该如下所示

Datatable dt = null;
for(int i = 0; i < 1000; i++)
{    
 dt = new Datatable();
 //Perform some operation
 dt = null;//or dt.Dispose();
} 

答案 2 :(得分:0)

案例2会更有效率。对象构造函数是CPU的相对昂贵的操作。构造一个对象并为其成员赋值不同于销毁对象和构造。销毁一个物体并重新创造它相当于每次新房客入住时拆毁房屋并重建房屋。