在Visual Studio中使用c#关键字错误

本文关键字:关键字 错误 Visual Studio | 更新日期: 2023-09-27 18:05:43

我使用下面的代码行并得到错误:

在using语句中使用的类型必须隐式转换为System。IDisposable

如何消除这个错误?这行代码是:

using (var db = new HealthTrackerContext())

在Visual Studio中使用c#关键字错误

如果您的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;
        }

    }