try
{
JavaScriptSerializer jss = new JavaScriptSerializer();
List<int> ssda = (List<int>)jss.Deserialize(Jsondata, new List<int>().GetType());
using (Entities yyh = new Entities())
{
foreach (var item in ssda)
{
Article ya = (from a in Article where a.ID == item select a).FirstOrDefault();
if (ya != null)
{
ya.State = 1;
ya.AuditorID = ID;
yyh.SaveChanges();
return true;
}
}
}
return false;
}
catch (Exception)
{
return false;
}
如上代码...
如果发生异常 进入到catch中.. Using中的对象会释放掉么?
------解决思路----------------------
会的
using相等于try catch finally,异常会清理资源。
Using 块有三个部分:获取、使用和释放。
?获取表示创建变量并将其初始化,以便引用系统资源。Using 语句可获取一个或多个资源,您可以在进入块之前恰好获取一个资源,并将其提供给 Using 语句。如果提供 resourceexpression,在将控制权传递给Using 语句之前,您必须获取资源。
?使用表示访问资源并使用资源执行操作。Using 和 End Using 之间的语句代表资源的使用过程。
?释放表示针对 resourcename 中的对象调用 Dispose 方法。这使该对象可以完全终止其非托管资源。End Using 语句释放 Using 块控制的资源。
行为Using 块的工作方式类似于 Try...Finally 构造,在该构造中,Try 块使用资源,而 Finally 块释放资源。因此,不管您如何退出块,Using 块都可确保资源的释放。即使发生未处理的异常(除 StackOverflowException 外),也是如此。
------解决思路----------------------
Using 块的工作方式类似于 Try...Finally 构造,在该构造中,Try 块使用资源,而 Finally 块释放资源。因此,不管您如何退出块,Using 块都可确保资源的释放。即使发生未处理的异常(除 StackOverflowException 外),也是如此。