asp.Netにおけるc#カスタムイベントの実装方法の詳細
3128 ワード
本文の例はaspを述べた.Netにおけるc#カスタムイベントの実現方法.皆さんの参考にしてください.具体的な分析は以下の通りである.
c#カスタムイベントは6つのステップに分けられ、イベントに関する依頼を宣言し、イベントを宣言し、イベントを開始する関数を作成し、イベント処理を行います.ここでは具体的に説明します.
C#カスタムイベントの具体的な実装手順は以下の通りです:1、delegateを宣言します:(イベントのタイプの定義に使用します):
イベント名はあなた自身の代わりに、その後の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の方法、つまり自分を登録するか、トリガイベントコードで直接イベント処理方法を呼び出すことができます.たくさん話しましたが、次に例を見てみましょう.
皆さんのaspについてお話ししたいと思います.Netプログラミングが役立ちます.
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プログラミングが役立ちます.