使用“;使用“;用于所有非基本体对象
本文关键字:使用 对象 用于 | 更新日期: 2023-09-27 18:20:58
我相信有答案。。。但是在谷歌上搜索"C#使用"比你想象的要复杂一些。
无论如何。。。前几天我才真正开始学习这种方便的技术,如果不将其用于代码中的任何非原始对象,我似乎是愚蠢的。
这是一个相当准确的说法吗?还是对几乎所有内容使用"using"都有一些缺点(除了稍微混乱的代码之外)?
不清楚你的意思——如果你的意思是使用诸如之类的语句
using (SomeType x = new SomeType())
{
}
那么这只是适用于IDisposable
实现的。
如果您的意思是使用指令,如下所示:
using System.IO;
是的,我通常为每个命名空间都有一个指令,其中包含我希望在特定源文件中使用的类型。
正如其他人所提到的,您只能在实现IDisposable
的类型上使用using
语句。对于确实实现IDisposable
的类型,我看到的唯一真正的缺点是using
隐式调用该类型的Dispose()
方法,因此如果在该调用中抛出异常,有时很难捕捉到。
否则,我建议实现IDisposable
的类型使用using
,而不是使用try-catch finally,因为它使代码更加紧凑和干净。
编辑:发现了一篇很好的msdn文章,解释了这一点和其他陷阱。