看板
[ C_Sharp ]
討論串[問題] return的區域變數scope?
共 5 篇文章
內容預覽:
呃, 我不瞭解前面所說的不同是?. 在第二行結束他們兩個都是參考指向同一個物件. --. 我自己寫了個簡易程式:. class Test{. static void Main(string[] args){. string a,b="abc";. a=b;. Console.WriteLine((o
(還有337個字)
內容預覽:
其實有點看不太懂 你們指的複製,指的是heap 的複製還是 stack的複製. 每一次的字串指派, heap應該都不會複製,而是新建。. 就你上面那個例子(TextBox1.Text) 感覺你指的是 heap 的?. 但 s= "123"; 不就單純的配置 heap 出 123 然後將 s的valu
(還有434個字)
內容預覽:
謝謝,stack的變數名,及heap的記憶體空間,. 雖然透過scope的操作讓ref關係消失而被回收空間. 但「GC不會回收被ref到記憶體」這原則,則可解釋原因。. TextBox1.Text = "abc";. string s = TextBox1.Text; // if不會複製,為何不同了
(還有187個字)
內容預覽:
你忽略了很基本的問題:. 1.scope和動態配置(new)的記憶體空間是不相關的. 所以new出來的東西不會因為scope而釋放, 另外覺得你對C#的GC似乎. 也不是很瞭解, C#的GC在回收時只會回收完全被沒有被參考到的物件,. 所以dt1參考的物件是不會被回收的, 我覺得你需要去看看GC的運
(還有76個字)
內容預覽:
假如有個一函數傳回DataTable物件:. DataTable GetDataTable(). {. DataTable dt = new DataTable();. .... return dt;. }. DataTable dt1 = GetDataTable(); //這行是正常的, dt1
(還有137個字)