在Visual Studio中使用c#关键字错误
本文关键字:关键字 错误 Visual Studio | 更新日期: 2023-09-27 18:05:43
我使用下面的代码行并得到错误:
在using语句中使用的类型必须隐式转换为System。IDisposable
如何消除这个错误?这行代码是:
using (var db = new HealthTrackerContext())
如果您的HealthTrackerContext
没有实现IDisposable
,您将得到此错误。我猜你们班不会;因此,要纠正这种情况,您要么需要在对象上实现IDisposable
,要么删除using
块。
不使用using
块没有错,btw =D
这意味着HealthTrackerContext
没有实现IDisposable
。
易于复制且线程安全的模式:
public partial class HealthTrackerContext: IDisposable {
protected virtual void Dispose(bool disposing) {
lock(thisLock)
if(!disposed) {
if(disposing) {
// release your resource
// and set the referencing variables with null
this.disposed=true;
}
}
}
public void Dispose() {
this.Dispose(true);
GC.SuppressFinalize(this);
}
~HealthTrackerContext() {
this.Dispose(false);
}
object thisLock=new object();
bool disposed;
}
HealthTrackerContext应该实现IDisposable接口;一旦你实现了这个接口,错误就会消失。
看这个链接http://msdn.microsoft.com/en-us/library/system.idisposable.aspx
你必须为这个对象实现IDisposable Interface:
public class Disposable : IDisposable
{
private bool isDisposed;
~Disposable()
{
Dispose(false);
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
private void Dispose(bool disposing)
{
if (!isDisposed && disposing)
{
DisposeCore();
}
isDisposed = true;
}
}