C#的using语句设计的蛮贴心,比java的import有趣一点。转一篇文章.
C#中的using除了作为命名空间指示符(using System),类型的别名指示符(using Dos=System.Console),还有资源管理的语句功能:
using (R r1 = new R ()) {
r1.F();
}
在C#中被翻译为:
r1当然要支持Dispose()方法了
再来一个例子:
使用using会自动调用MyObject的Dispose方法.
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();
}
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 System;
namespace MyProjects
{
public class MyObject : IDisposable
{
public MyObject()
{
}
public void Dispose ( )
{
// Dispose
Console.WriteLine ( " Disposed " ) ;
//
![dot.gif](/Images/dot.gif)
}
}
}
# 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方法.