C#的using语句
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();
}
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 " ) ;
//

}
}
}
# 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方法.
文章转自庄周梦蝶 ,原文发布时间5.17
最后更新:2017-05-17 11:33:08
上一篇:
数据结构之链表
下一篇:
数据脱口秀 | 从小扎到盖茨,哪位科技大佬最可能黑化为大反派?
iHealth郭阳:要跟参与度极高的小米用户一起做出好产品
《Hadoop与大数据挖掘》一2.3.1 HDFS常用命令hdfs dfs
HDU1398-Square Coins
.NET设计模式开篇
[服务器] 企业服务器租用有哪些注意事项?
我用JS写的一段创建TABLE,添加行,模糊匹配,根据CHECKBOX删除内容,创建标题的代码(删除完再添加行有计数器的BUG)
信息惠民新样板 智慧潍坊新名片
Nodejs进阶:Express常用中间件body-parser实现解析
【前沿】TensorFlow Pytorch Keras代码实现深度学习大神Hinton NIPS2017 Capsule论文
低成本打造一个带宽无限的网站(三)