[問題] return的區域變數scope?
假如有個一函數傳回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
討論串 (同標題文章)
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章