最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2009年01月30日 18:28:28   作者:  
今天把委托和事件研究了一個(gè),winForm環(huán)境下,一般的小例子都是字符界面,我為了運(yùn)用一下,寫(xiě)了winForm
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í)行多個(gè)方法.
return "hello " + name;
}
public string HiCSharp(string name)
{
txt += "hi " + name;
return "hi " + name;
}
#endregion
#region 定義委托
//定義委托和定義方法類(lèi)似,區(qū)別是加個(gè)delegate.去掉方法體,只寫(xiě)方法簽名.
public delegate string SayHi(string name);
//委托可以像普通變量一樣使用.區(qū)別在于可以把多個(gè)方法賦給委托.
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í)行多個(gè)方法.
return "hello " + name;
}
public string HiCSharp(string name)
{
txt += "hi " + name;
return "hi " + name;
}
#endregion
#region 定義委托
//定義委托和定義方法類(lèi)似,區(qū)別是加個(gè)delegate.去掉方法體,只寫(xiě)方法簽名.
public delegate string SayHi(string name);
//委托可以像普通變量一樣使用.區(qū)別在于可以把多個(gè)方法賦給委托.
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");
//測(cè)試委托
common.dlgt1 = common.HelloCSharp;//只寫(xiě)方法簽名,不加()
common.dlgt1 += common.HiCSharp;//雖然兩個(gè)方法都調(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;
//事件
/*這里的問(wèn)題是不能用common.hiEvent();這樣引用.
原因是需要在這個(gè)類(lèi)里定義一個(gè)事件變量.
*/
common.causeEvent();
this.lblShow.Text = Common.txt;
}
}
}

相關(guān)文章

最新評(píng)論

明光市| 伊宁县| 商水县| 嘉峪关市| 织金县| 长海县| 呼玛县| 关岭| 东乌珠穆沁旗| 平乐县| 缙云县| 大方县| 杂多县| 辽中县| 自治县| 濮阳县| 驻马店市| 郧西县| 奉节县| 陕西省| 西盟| 克山县| 张家港市| 成武县| 福鼎市| 平湖市| 台湾省| 琼结县| 梁山县| 科尔| 安化县| 英吉沙县| 米脂县| 玉树县| 黄龙县| 招远市| 嘉祥县| 沙河市| 封开县| 米脂县| 银川市|