2010-07-20 5 views
0

public abstract class RésuméDBConnector { private AdServiceDB db;C# Est-il possible d'utiliser une référence d'objet DB dans une méthode statique?

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

et une classe qui hérite de celui-ci:

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 
    } 
} 

ce code génère évidemment une erreur: Une référence d'objet est nécessaire pour le champ non statique, la méthode ou la propriété Est-il même possible de faire un truc pour utiliser l'adaptateur dans la méthode statique?

Répondre

1

Seulement si l'adaptateur est également static, ce que vous ne voulez probablement pas qu'il soit (mais peut-être que vous le faites, je ne suis pas sûr quel est le cas d'utilisation exact, il n'y a pas assez d'informations). Passez l'adaptateur à la méthode en tant que paramètre si la méthode doit être static, mais il semble plus probable que votre méthode ne devrait tout simplement pas être static en premier lieu.

EDIT:. Noter que pour « Capturez static approche de vous travailler aurez à faire à la fois Adapter et dbstatic

+0

OK, mais si je mets l'adaptateur comme une propriété statique, puis (OMI), il ne devrait pas – Tony

+1

Oui, c'est pourquoi j'ai commencé par déclarer que c'était probablement une mauvaise idée, et cela vous ramène à ma suggestion originale, soit que la méthode ne soit pas statique du tout ou en passant l'adaptateur. – Donnie

Questions connexes