아래는 부모 & 하위 클래스입니다. 내가 & 그들을 사용하려고 보호 등의 상위 클래스의 속성을 한 경우상속 체인을 이해하려고 시도 중
public class ParentController : ApiController
{
public ICustomer customer { get; set;}
public ICustUtil util { get; set;}
}
public class ChildController : ParentController
{
//no issue here
public string Get()
{
customer = util.GetCustomers();
}
}
, 나는 나는 그것이 public
-protected
액세스 지정을 갱신 차이를 만들 않는 방법을 이해하려고 Object NULL reference Exception
public class ParentController : ApiController
{
protected ICustomer customer { get; set;}
protected ICustUtil util { get; set;}
}
public class ChildController : ParentController
{
//Object Null reference exception at run time here
public string Get(){
customer = util.GetCustomers();}
}
를 얻을.
주의 사항 : - 나는
지금 명명 규칙을 무시하십시오 Castle Windsor DI
컨테이너를 사용하고
- .
@ Kgn-web : 아니오,이 코드는 실제로 컴파일되지 않습니다. 'public class ParentController : ApiController'와 같은 것이 필요합니다. 그렇다면 클래스 선언에 직접적으로 선언이 없으므로'ChildController' 코드도 컴파일되지 않습니다. [mcve]를 입력하십시오. (또한 .NET 명명 규칙에 대해 자세히 알기를 강력히 권합니다.) –
@JonSkeet, 오타를 잘못 입력했습니다. 나는 진심으로 사과한다. –
컴파일러 오류에 대한 예외가 아닌 이유는 아마도'ChildController' 클래스 내에서'utils' 속성을 인스턴스화하지 않는다는 것입니다. – HimBromBeere