2010-07-20 4 views
0

public abstract class AbstractDBConnector { private AdServiceDB db;C# 정적 메서드에서 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

어뎁터가 static 인 경우에만 가능하지만, 실제로 사용하지 않으려는 경우 (정확한 사용 사례가 무엇인지 잘 모르겠습니다. 충분한 정보가 없습니다). 메소드가 static이어야하는 경우 매개 변수로 메소드에 어댑터를 전달하십시오. 그러나 메소드가 처음에는 static이 아니어야합니다.

편집이 :. (가) "가 static 방법은 내가 (IMO) 한 후, 정적 속성으로 어댑터를 설정 한 경우 모두 Adapterdbstatic

+0

확인을 확인해야하지만거야 작업 할 수 참고 그게 야해 웹 프로젝트에서 사용할 수 있습니다. (가장 가까운 사진으로 사용됩니다.) – Tony

+1

그렇기 때문에 그 생각은 나쁘다고 생각하기 시작했습니다. 그리고 정적 인 방법이 아니라는 원래 제안으로 돌아갑니다. 또는 어댑터를 어댑터에 전달하십시오. – Donnie

관련 문제