using System;class C : IDisposable
{
{
public void UseLimitedResource()
{
Console.WriteLine("Using limited resource...");
}
void IDisposable.Dispose()
{
Console.WriteLine("Disposing limited resource.");
}
}
class Program
{
static void Main()
{
using (C c = new C())
{
c.UseLimitedResource();
}
Console.WriteLine("Now outside using statement.");
Console.ReadLine();
}
}
这个程序,我始终不明白的是Using 的用法,希望有高人能指点。。谢谢了。。
void IDisposable.Dispose() 还有这句,是释放资源的吗?
谢谢了!
{
{
public void UseLimitedResource()
{
Console.WriteLine("Using limited resource...");
}
void IDisposable.Dispose()
{
Console.WriteLine("Disposing limited resource.");
}
}
class Program
{
static void Main()
{
using (C c = new C())
{
c.UseLimitedResource();
}
Console.WriteLine("Now outside using statement.");
Console.ReadLine();
}
}
这个程序,我始终不明白的是Using 的用法,希望有高人能指点。。谢谢了。。
void IDisposable.Dispose() 还有这句,是释放资源的吗?
谢谢了!
当在某个代码段中使用了类的实例,只要离开了这个代码段就自动调用这个类实例的Dispose。
如using (A a= new A())
会自动通知CLR,()里的资源可以释放。。会调用Dispose,但不是立刻就清理内存
2定义一个范围,结束时,处理对象。
3using别名,当同一个cs引用了两个不同的命名空间,但两个命名空间都包括了一个相同名字的类型,当需要用到这个类型的时候,就每个地方都要用详细命名空间的办法来区分这些相同名字的类型。用别名的方法会更简洁,用到哪个类就给哪个类做别名声明就可以了。
这儿的using,编译之后其实就是
Try
{
C c = new C();
}
Finally
{
c.dispose();
}手动释放非托管资源。
楼主可以通过ILDasm.exe自己看一看~
下边的using(){}是用来释放资源的
一:using指令。using + 命名空间名字。
二:using别名。using + 别名。
三:using语句,定义一个范围,在范围结束时处理对象。
楼主用的就是最后一种类型。一般使用using时,在读写文件流,和打开关闭数据库对象。
lz用的就是最后一种,当{}完了之后,结束对象生命,diapose掉