作者tomex (tomex_ou)
看板C_Sharp
标题[问题] return的区域变数scope?
时间Tue Sep 13 10:08:00 2005
假如有个一函数传回DataTable物件:
DataTable GetDataTable()
{
DataTable dt = new DataTable();
...
return dt;
}
DataTable dt1 = GetDataTable(); //这行是正常的, dt1指向dt记忆体位置
dt1.Rows(); // dt是区域变数物件,scope已消失,随时被回收, dt1危险!
最近学c++,特别重视记忆体管理,
以前用c#都没在乎dt是有scope范围的local变数,
现在好像觉得蛮危险的。
return string比较没问题,因为string接收时都采复制1份新的记忆体空间
但物件似乎不是如此
虽然gc没那麽快回收,但终究是超出scope范围的变数,
大家怎麽看这问题呢?
--
贯彻分享精神
我为人人,人人为我
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.78.132.15