asp.Netにおけるc#カスタムイベントの実装方法の詳細

3128 ワード

本文の例はaspを述べた.Netにおけるc#カスタムイベントの実現方法.皆さんの参考にしてください.具体的な分析は以下の通りである.
c#カスタムイベントは6つのステップに分けられ、イベントに関する依頼を宣言し、イベントを宣言し、イベントを開始する関数を作成し、イベント処理を行います.ここでは具体的に説明します.
C#カスタムイベントの具体的な実装手順は以下の通りです:1、delegateを宣言します:(イベントのタイプの定義に使用します):

   public delegate void     EventHandler(object serder, EventArgs e); 
 

イベント名はあなた自身の代わりに、その後のEventHandlerはC#の推奨命名規範であり、もちろん守りたくない場合は、任意の文字を使用したり、使用したりすることはできません.
イベントのパラメータEventArgsをカスタマイズしたい場合は、このクラスから独自のイベントパラメータクラスを派生し、delegateの宣言でEventArgsをパラメータクラスに置き換えることができます.
注意:カスタムイベントの原理を全面的に理解するには、delegateに関する知識を学ぶ必要があります.
2、あなたのクラスでイベントを宣言し、ステップ1のdelegateをイベントのタイプとして使用します:public eventイベント名EventHandlerイベント名;
3、あなたのクラスでイベントをトリガーする方法で、イベントトリガーコードを追加します.
イベント名(this,new EventArgs();または、if(イベント名!=null)イベント名(this,new EventArgs();//自分のイベントパラメータクラスを使用する場合は、new EventArgs()をパラメータクラスの事例に置き換え、渡す必要があるデータをパラメータクラスに保存できます.
4、C#カスタムイベント登録:
イベント登録は通常のイベント登録と変わりません.つまり、イベントがトリガーされたときに外部のオブジェクトが応答する必要がある場合は、外部のコンストラクタ(または適切な場所)でイベントを登録できます.
イベント付きクラスインスタンスイベント名+=newイベント名EventHandler(イベント処理方法名);
5、イベント処理方法の作成:
public voidイベント処理方法名(object sender,EventArgs e){//コードを追加}注意:クラスで自分のトリガイベントを処理する場合は、C#カスタムイベントステップ4と5の方法、つまり自分を登録するか、トリガイベントコードで直接イベント処理方法を呼び出すことができます.たくさん話しましたが、次に例を見てみましょう.

   namespace       
  
{
    // :
    class Program
    {
        static void Main(string[] args)
        {
            // :
            Dog dog = new Dog();
            Host host = new Host(dog);
            DateTime now = new DateTime(2013,8,31,22,39,50);
            DateTime nigth = new DateTime(2013,8,31,22,40,0);
            Console.WriteLine("~~~~~~~~~ ~~~~~~~~~");
            while(now                 Console.WriteLine(" :"+now);
                System.Threading.Thread.Sleep(1000);
                now = now.AddSeconds(1);
            }
            Console.WriteLine("~~~~~~~ , ~~~~~~~~~~~~");
            dog.OnAlarn();
        }
    }
    class Dog {
        // :
        public delegate void AlarnEven(object sender,EventArgs e);
        // :
        public event AlarnEven Alarn;
        // :
        public void OnAlarn() {
            if(this.Alarn!=null){
                Console.WriteLine("n : . ~~~~~~~~~");
                this.Alarn(this,new EventArgs());
            }
        }
    }
    class Host {
        // :
        void HostAlarn(object sender, EventArgs e)
        { Console.WriteLine(" : ..!"); }
        // :
        public Host(Dog dog) {
            dog.Alarn += new Dog.AlarnEven(HostAlarn);
        }
    }
}

皆さんのaspについてお話ししたいと思います.Netプログラミングが役立ちます.