Hos*_*Aly 3 c# java resources coding-style
我已经看到了两种获取和处理资源的方法.或者:
Resource resource = getResource();
try { /* do something with resource */ }
finally { resource.close(); }
Run Code Online (Sandbox Code Playgroud)
要么:
Resource resource = null;
try { resource = getResource(); /* do something with resource */ }
finally { if (resource != null) resource.close(); }
Run Code Online (Sandbox Code Playgroud)
我想知道哪种风格更可取.第一个避免if条件,而第二个(我假设)在赋值之后但在进入try块之前处理线程中止的情况.这些风格有什么其他优点和缺点?我最好使用哪一个?
在C#中,只需使用using语句:
using (Resource resource = GetResource())
{
/* Do something */
}
Run Code Online (Sandbox Code Playgroud)
在分配和进入try块之间没有发生Java线程中止的风险 - 中止只发生在休眠和等待期间.编辑:我实际上无法在规范中找到这个,这有点令人担忧.嗯.