Posted on 2007-02-12 15:53
dennis 閱讀(737)
評論(0) 編輯 收藏 所屬分類:
C#歷程
C#的using語句設計的蠻貼心,比java的import有趣一點。轉一篇文章.
C#中的using除了作為命名空間指示符(using System),類型的別名指示符(using Dos=System.Console),還有資源管理的語句功能:
using (R r1 = new R ()) {
? ?r1.F();
}
在C#中被翻譯為:
R?r1?=?new?R();
try?{
???r1.F();
}
finally?{
???if?(r1?!=?null)?((IDisposable)r1).Dispose();
}
r1當然要支持Dispose()方法了
再來一個例子:
#?MyObject.cs
using
?System;
?
namespace
?MyProjects
{
????
public
?
class
?MyObject?:?IDisposable
????{
????????
public
?MyObject()
????????{
????????}
?
????????
public
?
void
?Dispose?(?)
????????{
????????????
//
?Dispose
????????????Console.WriteLine?(?
"
Disposed
"
?)?;
????????????
//
?
????????}
????}
}
?
#?Class1.cs
using
?System;
?
namespace
?MyProjects
{
?????
public
?
class
?Class1
?????{
?????????
public
?Class1()
?????????{
?????????}
?
?????????
public
?
static
?
void
?Main?(?
string
[]?args?)
?????????{
??????????????
using
?(?MyObject?myObject?
=
?
new
?MyObject?(?)?)
??????????????{
???????????????????Console.WriteLine?(?
"
quit
"
?)?;
??????????????}
?????????}
?????}
}
?
使用using會自動調用MyObject的Dispose方法.