C # Можно ли использовать ссылку на объект БД в статическом методе? - PullRequest
0 голосов
/ 20 июля 2010

открытый абстрактный класс AbstractDBConnector { частный AdServiceDB db;

    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 Ответ

1 голос
/ 20 июля 2010

Только если Adapter также равен static, что вы, вероятно, не хотите, чтобы это было (но, возможно, вы делаете, я не уверен, каков точный вариант использования, недостаточно информации). Передайте адаптер методу в качестве параметра, если метод должен быть static, но кажется более вероятным, что ваш метод просто не должен быть static.

РЕДАКТИРОВАТЬ: обратите внимание, что для того, чтобы подход «заставил его static работать», вам придется сделать Adapter и db static.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...