C# 我应该为ObjectContext使用using关键字吗?
我在本网站或CodeProject的某个地方读到,好的规则是,如果某个类实现了IDisposable接口,那么您应该使用using关键字,因为使用转换为MSIL的关键字是try/finally block,如下所示:C# 我应该为ObjectContext使用using关键字吗?,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我在本网站或CodeProject的某个地方读到,好的规则是,如果某个类实现了IDisposable接口,那么您应该使用using关键字,因为使用转换为MSIL的关键字是try/finally block,如下所示: try { //some logic } finally { if (obj != null) { obj.Dispose(); } } using(SampleBEntities db = new SampleBEntit
try
{
//some logic
}
finally
{
if (obj != null)
{
obj.Dispose();
}
}
using(SampleBEntities db = new SampleBEntities()){//some logic here}
但在观看Entity Framework教程时,我遇到了如下情况:
try
{
//some logic
}
finally
{
if (obj != null)
{
obj.Dispose();
}
}
using(SampleBEntities db = new SampleBEntities()){//some logic here}
SampleBenties继承自ObjectContext,并且在MSDN lib ObjectContext中未实现IDisposable?是,它实现了
IDisposable
接口
public class ObjectContext : IDisposable
检查
它有方法Dispose()
,这些方法来自于实现IDisposable
接口
public class ObjectContext : IDisposable
如果它没有像您所说的那样实现,那么它甚至不会编译
使用语句
使用定义一个作用域,在该作用域之外将处理一个或多个对象
C#通过.NET Framework公共语言运行库(CLR)自动释放用于存储不再需要的对象的内存。内存的释放是不确定的;每当CLR决定执行垃圾收集时,就会释放内存
using语句允许我们指定使用资源的对象何时释放它们提供给using语句的对象必须实现IDisposable接口。此接口提供Dispose方法,该方法应释放对象的资源。
using语句可以在using语句结束时退出,也可以在抛出异常且控件在语句结束前离开语句块时退出。如果未实现IDisposable,代码无法编译。请发布您从中了解到的MSDN链接
ObjectContext未实现IDisposable?