3个回答
展开全部
delegate viod CharEventHandler(object sender, CharEventArgs e);
//自定义了一个触发事件的参数
public class CharEventArgs : EventArgs
{
public char CurrChar;
public CharEventArgs(char CurrChar)
{
this.CurrChar = CurrChar;
}
}
class CharChecker
{
char curr_char;
public event CharEventHandler CharTest;
public char Curr_Char
{
get{return curr_char;}
set
{
if(CharTest!=null)
{
CharEventArgs myeven=new CharEventArgs(value);
CharTest(this,myeven);// 在这里触发事件
curr_char=myeven.CurrChar
}
}
}
}
class AppEvent
{
static void Main()
{
CharChecker chartester=new CharChecker();
chartester.CharTest+=new CharEventHandler(Change_X);//触发事件Chartest时, 绑定到Change_X函数上
chartester.Curr_Char='a'; //运行Curr_Char的Set方法, 触发事件
Console.WriteLine("事件处理结果:{0}",chartester.Curr_Char);
chartester.Curr_Char='b';
Console.WriteLine("事件处理结果:{0}",chartester.Curr_Char);
chartester.Curr_Char='x';
Console.WriteLine("{0}",chartester.Curr_Char);
Console.WriteLine();
}
static void Change_X(Object source, CharEventArgs e)
{
if(e.CurrChar=='x' || e.CurrChar='X')
{
Console.Write("触发的字符是x,");
Console.Write("把x替为:");
e.CurrChar='?';
}
else
Console.Write("触发的字符不是x,");
}
}
运行结果:
触发的字符不是x,事件处理的结果:a
触发的字符不是x,事件处理的结果:b
触发的字符是x,把x替为:?
//自定义了一个触发事件的参数
public class CharEventArgs : EventArgs
{
public char CurrChar;
public CharEventArgs(char CurrChar)
{
this.CurrChar = CurrChar;
}
}
class CharChecker
{
char curr_char;
public event CharEventHandler CharTest;
public char Curr_Char
{
get{return curr_char;}
set
{
if(CharTest!=null)
{
CharEventArgs myeven=new CharEventArgs(value);
CharTest(this,myeven);// 在这里触发事件
curr_char=myeven.CurrChar
}
}
}
}
class AppEvent
{
static void Main()
{
CharChecker chartester=new CharChecker();
chartester.CharTest+=new CharEventHandler(Change_X);//触发事件Chartest时, 绑定到Change_X函数上
chartester.Curr_Char='a'; //运行Curr_Char的Set方法, 触发事件
Console.WriteLine("事件处理结果:{0}",chartester.Curr_Char);
chartester.Curr_Char='b';
Console.WriteLine("事件处理结果:{0}",chartester.Curr_Char);
chartester.Curr_Char='x';
Console.WriteLine("{0}",chartester.Curr_Char);
Console.WriteLine();
}
static void Change_X(Object source, CharEventArgs e)
{
if(e.CurrChar=='x' || e.CurrChar='X')
{
Console.Write("触发的字符是x,");
Console.Write("把x替为:");
e.CurrChar='?';
}
else
Console.Write("触发的字符不是x,");
}
}
运行结果:
触发的字符不是x,事件处理的结果:a
触发的字符不是x,事件处理的结果:b
触发的字符是x,把x替为:?
展开全部
static void Main(string[] args)
{
PrintWordsDel mDel;
mDel = PrintWords;
mDel("你好!");
Console.ReadKey();
}
public delegate void PrintWordsDel(string words);
static void PrintWords(string words)
{
Console.WriteLine(words);
}
以上是直接使用委托,下面用委托加事件触发:
class Program
{
static void Main(string[] args)
{
CEventDel mEventDel = new CEventDel();
mEventDel.mDel += new PrintWordsDel(mEventDel.PrintWordsHandler);
mEventDel.PrintWords("你好!");
Console.ReadKey();
}
}
public delegate void PrintWordsDel(string words); //定义委托事件
public class CEventDel
{
public event PrintWordsDel mDel; //委托变量
public void PrintWords(string words) //调用该事件将触发PrintWordsHandler
{
if (mDel != null)
{
mDel(words);
}
}
public void PrintWordsHandler(string words)
{
Console.WriteLine(words);
}
}
{
PrintWordsDel mDel;
mDel = PrintWords;
mDel("你好!");
Console.ReadKey();
}
public delegate void PrintWordsDel(string words);
static void PrintWords(string words)
{
Console.WriteLine(words);
}
以上是直接使用委托,下面用委托加事件触发:
class Program
{
static void Main(string[] args)
{
CEventDel mEventDel = new CEventDel();
mEventDel.mDel += new PrintWordsDel(mEventDel.PrintWordsHandler);
mEventDel.PrintWords("你好!");
Console.ReadKey();
}
}
public delegate void PrintWordsDel(string words); //定义委托事件
public class CEventDel
{
public event PrintWordsDel mDel; //委托变量
public void PrintWords(string words) //调用该事件将触发PrintWordsHandler
{
if (mDel != null)
{
mDel(words);
}
}
public void PrintWordsHandler(string words)
{
Console.WriteLine(words);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public delegate void WebUserControlButtonClickHandler(object sender, EventArgs e);
public event WebUserControlButtonClickHandler ClickHandler;
然后再需要的时候检查事件委托是否不为空并引发,比如按下按钮时
protected void Button1_Click(object sender, EventArgs e)
{
if (ClickHandler != null)
{
ClickHandler(sender, e);
}
}
public event WebUserControlButtonClickHandler ClickHandler;
然后再需要的时候检查事件委托是否不为空并引发,比如按下按钮时
protected void Button1_Click(object sender, EventArgs e)
{
if (ClickHandler != null)
{
ClickHandler(sender, e);
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询