以下は親&子クラスです。私は&はそれらを使用しようとする保護されたとして、親クラスのプロパティを作成する場合は継承チェーンを理解しようとしています
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