0

私は基本コントロールを持っています:

public partial class BaseControl : System.Web.UI.UserControl
{
    protected virtual void Page_Load(object sender, EventArgs e)
    {
    }

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        Page.LoadComplete += Page_LoadComplete;
    }

    protected virtual void Page_LoadComplete(object sender, EventArgs e)
    {
        Page.LoadComplete -= Page_LoadComplete;
    }
}

次に、これから派生するコントロールがあります

public partial class MyChildControl : BaseControl

私が抱えている問題は、MyChildControl複数回ロードすると、でオブジェクト参照エラーが発生することPage.LoadComplete -= Page_LoadComplete;ですBaseControl。理由はある程度理解できますが、2つの質問があります。

  1. それぞれMyChildControlの参照はそれ自身のバージョンでBaseControlあり、そのバージョンはそれ自身を登録するべきではありませんPageLoadCompleteか?
  2. nullでないかどうかを確認するにはどうすればよいですか?できないようです!= null

編集:Pagenullのようで、チェックPage != nullすると問題は解決しますが、nullの方法がわかりませんPage

4

1 に答える 1

2

Page_LoadCompletenullにすることはできません。これは、methog用に作成された単なるデリゲートですPage_LoadComplete。したがって、Page inPage.LoadCompleteがnullであるか、ページにイベントLoadCompleteにハンドラーを追加するためのカスタムロジックがあり、そこでrefエラーが発生している可能性があると思います

于 2012-04-13T14:32:05.273 に答える