您的位置:首页 > 编程语言 > C#

C#事件与委托的关系【使用】

2012-03-14 10:45 246 查看
class Program

{

static void Main(string[] args)

{

MyText myText = new MyText();

//将事件处理添加到事件的调用列表中(既事件布线)

myText.Changed += new MyText.ChangeEventHandler(myText_Changed);

string str = "";

while(str!="quit")

{

Console.WriteLine("please enter a string:");

str = Console.ReadLine();

myText.Text = str;

}

}

//对Change事件处理的程序

private static void myText_Changed(object sender,EventArgs e)

{

Console.WriteLine("text has been changed :{0}\n",((MyText)sender).Text);

}

}

public class MyText

{

private string _text="";

//定义事件的委托

public delegate void ChangeEventHandler(object sender,EventArgs s);

//定义一个事件

public event ChangeEventHandler Changed;

//用以触发Change事件

protected virtual void OnChanged(EventArgs e)

{

if(this.Changed!=null)

this.Changed(this,e);

}

//Text 属性

public string Text

{

get{return this._text;}

set

{

this._text = value;

//文本改变触发Change事件

this.OnChanged(new EventArgs());

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: