a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

c# 委托和事件實例學(xué)習(xí)

2020-01-24 03:47:05
字體:
供稿:網(wǎng)友
Common.cs:
復(fù)制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Text;
namespace DelegateAndEvent.App_Code
{
public class Common
{
//定義全局變量.
public static string txt = "";
#region 定義方法
public string HelloCSharp(string name)
{
txt += "hello " + name;//這樣做是為了看到委托可以執(zhí)行多個方法.
return "hello " + name;
}
public string HiCSharp(string name)
{
txt += "hi " + name;
return "hi " + name;
}
#endregion
#region 定義委托
//定義委托和定義方法類似,區(qū)別是加個delegate.去掉方法體,只寫方法簽名.
public delegate string SayHi(string name);
//委托可以像普通變量一樣使用.區(qū)別在于可以把多個方法賦給委托.
public SayHi dlgt1, dlgt2;
//使用委托
public void useDelegate(string name, SayHi sayHi)
{
sayHi(name);
}
#endregion
#region 事件
//聲明事件
public event SayHi hiEvent;
//觸發(fā)事件
public void causeEvent()
{
hiEvent += HelloCSharp;
hiEvent += HiCSharp;
if (hiEvent != null)
{
hiEvent("crane");
}
}
#endregion
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace DelegateAndEvent.App_Code
{
public class Common
{
//定義全局變量.
public static string txt = "";
#region 定義方法
public string HelloCSharp(string name)
{
txt += "hello " + name;//這樣做是為了看到委托可以執(zhí)行多個方法.
return "hello " + name;
}
public string HiCSharp(string name)
{
txt += "hi " + name;
return "hi " + name;
}
#endregion
#region 定義委托
//定義委托和定義方法類似,區(qū)別是加個delegate.去掉方法體,只寫方法簽名.
public delegate string SayHi(string name);
//委托可以像普通變量一樣使用.區(qū)別在于可以把多個方法賦給委托.
public SayHi dlgt1, dlgt2;
//使用委托
public void useDelegate(string name, SayHi sayHi)
{
sayHi(name);
}
#endregion
#region 事件
//聲明事件
public event SayHi hiEvent;
//觸發(fā)事件
public void causeEvent()
{
hiEvent += HelloCSharp;
hiEvent += HiCSharp;
if (hiEvent != null)
{
hiEvent("crane");
}
}
#endregion
}
}

MainFrm.cs:
復(fù)制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DelegateAndEvent.App_Code;
namespace DelegateAndEvent
{
public partial class MainFrm : Form
{
Common common = new Common();
public MainFrm()
{
InitializeComponent();
}
private void btnOk_Click(object sender, EventArgs e)
{
//this.lblShow.Text += common.HelloCSharp("tree");
//測試委托
common.dlgt1 = common.HelloCSharp;//只寫方法簽名,不加()
common.dlgt1 += common.HiCSharp;//雖然兩個方法都調(diào)用了,但是返回值只返回最后一次調(diào)用的值.
//this.lblShow.Text += common.dlgt1("tree");//使用委托就像使用方法一樣.
//this.lblShow.Text = Common.txt;
//用委托做參數(shù)
//common.useDelegate("tree", common.dlgt1);
//this.lblShow.Text = Common.txt;
//事件
/*這里的問題是不能用common.hiEvent();這樣引用.
原因是需要在這個類里定義一個事件變量.
*/
common.causeEvent();
this.lblShow.Text = Common.txt;
}
}
}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美成人免费 | 国产中文在线 | 天天干天天看天天操 | 蜜桃视频网站在线观看 | 日韩91 | 成人午夜视频在线观看 | 黄色网免费看 | 日韩精品极品在线观看 | 中文字幕久久久 | 日韩在线观看不卡 | 国产一区二区三区四区 | jizz在亚洲 | 蜜桃精品久久久久久久免费影院 | 国产精品久久久久久亚洲影视 | 欧美日韩中 | 国产98色在线 | 日韩 | 少妇一区二区三区 | 亚洲电影一区二区三区 | 国产亚洲欧美在线 | 久久久久久91香蕉国产 | 一区二区免费 | 日韩av电影观看 | 精品国产免费久久久久久尖叫 | 伊人免费视频二 | 国产高清精品一区二区三区 | 亚洲天堂在线视频播放 | 久久涩涩 | 国产成人精品一区二区三区网站观看 | 中文字幕一级 | 黄色免费电影网站 | 91麻豆蜜桃一区二区三区 | 亚洲区一 | av在线一区二区 | 91污视频网站| 亚洲美女视频在线观看 | 久久精品久 | 绯色av一区二区三区在线高清 | 亚洲毛片网站 | 国产精选视频 | 伊人青青久久 | 日本久久久久久 |