当前位置:  开发笔记 > 编程语言 > 正文

我怎么知道使用'使用'的最佳地点?

如何解决《我怎么知道使用'使用'的最佳地点?》经验,为你挑选了2个好方法。

我对c#有点新手,更习惯脚本语言.我喜欢'使用'的想法,你实例化一个对象,然后只要你需要它就在它的范围内运行,然后当它完成它的目的时你让它自己处理掉.

但是,这对我来说并不自然.当人们向我展示使用它的例子时,我认为它是一个很好的工具,但在我自己的编程中解决它的问题从来没有发生过.

如何识别好的地方using以及如何将它与try-catch块结合使用.它们是否进入块内,或者您是否通常想在try块中包含using语句?



1> Mitch Wheat..:

using只能与实现的类型一起使用IDisposable; 它保证Dispose()即使发生错误也会调用该方法.

这段代码:

using (MyDisposableType x = new MyDisposableType())
{  
    // use x
}

相当于:

MyDisposableType x = new MyDisposableType();
try
{  
    // use x
}
finally 
{ 
    x.Dispose(); 
}



2> Jon Skeet..:

我很少编写try/catch块 - 大多数异常会被抛到(靠近)堆栈的顶部.如果我确实需要一个try/catch块,我不确定我把它放在using声明与外部之间是否特别一致.这实际上取决于您是否希望在运行异常处理代码之前处理资源.

如果您在询问何时应该编写using语句 - 只要您"拥有"一个实现IDisposable(直接或间接通过继承)并控制其生命周期的对象.这通常是一个使用非托管资源(如文件句柄或网络连接)的对象.它并不总是非常明显,但你通过经验学习.几乎与IO有关的任何事情都是一次性的,Windows处理(对于字体等)是类似的.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有