0

aspx.cs ページに次のコードがある場合:

    protected void page_Load(object sender, EventArgs e)  
    {

    }
    protected void PAGE_LOAD(object sender, EventArgs e) 
    {

    }
    protected void PaGe_LoAD(object sender, EventArgs e)
    {

    }

C# では、これらのメソッドを同じ場所に作成できます。大文字と小文字が区別されるため、これらは区別可能です...しかし、実際の Page_Load の代わりにどのメソッドを実行するかをコンパイラがどのように決定するのでしょうか??
ありがとう !!

4

1 に答える 1

0

Webサイト構成の1つのプロパティは、AutoEventWireupです。
http://msdn.microsoft.com/en-us/library/system.web.configuration.pagessection.autoeventwireup.aspx
イベントシグネチャは、コンパイル時ではなく実行時に配線されます。したがって、それはコンパイラの魔法ではありません。

どのデリゲートがどのイベントを呼び出すかを判断するために、コードが実行されます。そのコードでは大文字と小文字が区別されないようです。

上記の詳細な説明については、こちらをご覧くださいhttp://odetocode.com/Blogs/scott/archive/2006/02/17/inside-autoeventwireup.aspx情報は古い可能性がありますが、私はそれを考えていません時代遅れです。

正確なコードを理解するために採用できるアプローチはhttp://aspnetresources.com/articles/event_handlers_in_global_asaxで、global.asaxのイベントハンドラーに関する同じ質問に答えます。

リフレクターと幸せな掘り出し物を手に入れましょう。

于 2012-09-26T08:41:51.317 に答える