作者GoalBased (Artificail Intelligence)
看板C_Sharp
標題Re: [問題] 有關using
時間Mon Feb 8 17:54:51 2016
※ 引述《mitm (mitm)》之銘言:
: 通常using應該都是放在程式最上面,用來引用類別。
: 但我看到有using直接放在程式中間內容裡,
: 就像是把using寫在方法裡的樣子。
: 小的初學對這種方式有點不瞭解,
: 請問是什麼時候會需要這樣寫法?
: 或有什麼用意?
: 謝謝
參考:157個完美化C#的建議
繼承IDispose介面也為實現
語法甜頭using帶來了便利。
using(SampleClass c1 = new SampleClass())
{
}
會等於
SampleClass c1;
try
{
c1 = new SampleClass();
}
finally
{
c1.Dispose();
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 119.14.234.135
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_Sharp/M.1454925294.A.CA8.html
※ 編輯: GoalBased (119.14.234.135), 02/08/2016 17:55:38
1F:推 Litfal: 是的,我有時也會直接這種寫法,而不用using,例如區塊內 02/08 21:34
2F:→ Litfal: 有好幾個instance需要dispose時,用using會造成很深的巢狀 02/08 21:35
3F:→ Litfal: 我就會用這種寫法,在finally裡面統一進行dispose,我覺得 02/08 21:36
4F:→ Litfal: 這樣比較整潔 02/08 21:36
感謝樓上分享,我自己是很少遇到這種東西啦,大概是寫的東西太淺了 ^^"
※ 編輯: GoalBased (119.14.234.135), 02/08/2016 23:19:18
5F:→ fatrabitree: 其實樓上可以用using(/*A*/) 02/09 20:54
6F:→ fatrabitree: using(/*B*/) 02/09 20:55
7F:→ fatrabitree: { /*do what u want*/ } 02/09 20:55
8F:推 Litfal: 連續使用這樣是比較好,只是通常遇到要稍微處理A的事務才 02/09 21:43
9F:→ Litfal: new B() 那就不能這樣寫了 02/09 21:43
10F:推 fanntone: 直接用智慧指標就好了阿 02/23 00:32