C#是否可以在静态方法中使用DB对象引用?

时间:2010-07-20 18:03:47

标签: c# static

公共抽象类AbstractDBConnector     {         私人AdServiceDB数据库;

    public AdServiceDB Adapter
    {
        get 
        {
            if (db == null) db = new AdServiceDB();
            return db;
        }
    }
}

和一个继承自它的类:

public class BaseDataValidator : AbstractDBConnector
{
    public static bool Check()
    {
        var t = Adapter.Users.Where(x=>x.Id<10).ToList(); //the error is here
        return true; //example
    }
}

此代码显然会生成错误:非静态字段,方法或属性需要对象引用是否可以在静态方法中使用适配器?

1 个答案:

答案 0 :(得分:1)

只有当适配器也是static时,您可能不希望它(但也许你这样做,我不确定确切的用例是什么,没有足够的信息)。如果方法必须为static,则将适配器作为参数传递给方法,但您的方法似乎不应该首先static

编辑:请注意,对于“让static方法开始工作,您必须同时制作Adapterdb static