我在学校学习了C#,现在我开始学习Java了。
在Java中,有#34;尝试使用ressources"当它不再使用时,它将关闭/处理东西(如扫描仪)。
等效的C#是using-Statement,基本上也是这样。
他们真的完全相同,还是有任何差异(比如他们在后台做的事情)?
答案 0 :(得分:10)
不,他们完全没有相同。
try-with-resources
语句可以声明不同类型的多个变量; using
语句可以声明多个变量,但它们都必须属于同一类型using
语句没有 来声明任何变量; using (foo)
很好 - 而尝试资源声明using
语句中声明的变量仍然是可分配的,尽管它仍然是处理的初始值,而不是块末尾的值;在try-with-resources
语句中声明的变量无法在块try-with-resources
语句可以包含catch
和finally
个字段,而您需要单独try
/ catch
或{{ C#try
/ catch
阻止
finally
语句的主体抛出异常,然后using
方法抛出异常,则只有后一个异常可用;在Dispose
中,关闭的例外是#34;被抑制" (因此语句结果是try-with-resources
块的例外),但仍然可以使用try
检索结束例外。