简单,我脑袋不好用

stillmelody 2010-07-23 04:49:40
例如,下列形式的 using 语句

using (R r1 = new R()) {
r1.F();
}
完全等效于

R r1 = new R();
try {
r1.F();
}
finally {
if (r1 != null) ((IDisposable)r1).Dispose();



using语句在使用某对象后,能将其自动释放,但是使用的对象必须实现IDispose接口
实际上,使用using语句,就是在调用某对象后在调用其Dispose()方法。如conn.Dispose();


这里的"但是使用的对象必须实现IDispose接口"是什么意思?
...全文
172 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
stillmelody 2010-07-23
  • 打赏
  • 举报
回复
class xx :IDisposable{
void DIspose(){}
}


然后我就可以using(xx XX=new xx())了对吗?
WM_JAWIN 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 stillmelody 的回复:]
引用 7 楼 wybxs2006 的回复:
引用 2 楼 jxyxhz 的回复:
也就是要实现
interface IDisposable
{
void Dispose();
}

是的,Dispose是该接口下的方法


是要写在类里面了?
[/Quote]

class xx :IDisposable{
void DIspose(){}
}
stillmelody 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wybxs2006 的回复:]
引用 2 楼 jxyxhz 的回复:
也就是要实现
interface IDisposable
{
void Dispose();
}

是的,Dispose是该接口下的方法
[/Quote]

是要写在类里面了?
stillmelody 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jxyxhz 的回复:]
也就是要实现
interface IDisposable
{
void Dispose();
}
[/Quote]
不太明白,这个
interface IDisposable
{
void Dispose();
}
要写在什么位置?
阿彪兄 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jxyxhz 的回复:]
也就是要实现
interface IDisposable
{
void Dispose();
}
[/Quote]
是的,Dispose是该接口下的方法
Valefish 2010-07-23
  • 打赏
  • 举报
回复
using语句 要搞清楚了
Snowdust 2010-07-23
  • 打赏
  • 举报
回复
using语句执行结束后有一个统一处理的过程,这个过程就是调用IDispose,你先把怎么Dispose的方法写在IDispose的实现里面,比如一些对象的释放、关闭,这样系统就知道怎么处理了。
wjy217213 2010-07-23
  • 打赏
  • 举报
回复
帮顶!
小_虎 2010-07-23
  • 打赏
  • 举报
回复
如果他没有实现,就不能调用Dispose()方法。
小_虎 2010-07-23
  • 打赏
  • 举报
回复
也就是要实现
interface IDisposable
{
void Dispose();
}


Snowdust 2010-07-23
  • 打赏
  • 举报
回复
也就是说using语句执行结束后去调用类所实现的IDispose接口,如果不实现这个接口就会抛出异常。

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧