C#中的委託和事件-拋磚引玉
當第一次聽到委託、事件時感覺比較抽象、很好奇,當看到老師在課堂上利用委託和事件實現兩個窗體呼叫時、感覺委託太神奇了,呵、不廢話了……
委託
和
事件在做程式是很常見到的,對於像我這樣的接觸C#不是很長的光會去用,但不知道他裡面的含義及本質、想理解他還是有一點困難的,下面有兩個例子大家可以看一下
public delegate void Mydelegate(string name); //定義一個委託
class Program
{
public static void show(string
name)
{
Console.WriteLine(name);
}
static void Main(string[] args)
{
Mydelegate My = show; //利用遇他相對應的方法來例項化委託
My("呵呵"); //呼叫委託
Console.ReadKey();
}
}
呵呵,這個小例子是定義一個委託,通過與他相對應的方法來例項化委託,然後呼叫委託,實現方法。
下面一個例子是我看過張子陽部落格後寫的,本人英語不是太好、可能裡面定義會有些…… 呵
using
System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication7
{
//我們來模擬一個打字智慧機,他有三部分構成:在鍵盤上面輸入文字、輸出在顯示器、語音提示;如果要實現這三種操作必須需要三種不同的硬體,所以
//鍵盤只能實現打字、顯示器實現輸出,語單提示裝置實現讀出文字。所以我們應該讓他們看成三種不同的物件,來實現程式!
//定義三個類,Smart(智慧機類),Typing(打字方法),show(顯示方法),MakyVoice(語音提示方法)
//鍵盤打字
public class Smart
{
public delegate
void SmartDelegate(char T);//定義一個委託
public event SmartDelegate
SmarEvent;//定義實現這個委託的事件
public char T;//相當於你每一次打的單個文字
//定用一個字串相當於我們從鍵盤上打出來的文字…… 呵
public string Text =
"解放四大快捷方式開啟附件多撒即可了飛灑富商大賈快樂看附件撒瘋狂";
public void Typing()
{
foreach (char t in
Text)
{
T = t;
if
(SmarEvent != null)
{
SmarEvent(T);
}
}
}
}
//顯示輸出
public class Display
{
public void
show(char T)
{
Console.WriteLine(T);
}
}
//語言提示
public class Voice
{
public void
MakyVoice(char T)
{
Console.WriteLine("您輸出了:" +
T);
}
}
class Program
{
static void Main(string[]
args)
{
Smart S = new Smart();
Display
D = new Display();
Voice V = new Voice();
S.SmarEvent+=new Smart.SmartDelegate(D.show);
S.SmarEvent+=new
Smart.SmartDelegate(V.MakyVoice);
S.Typing();
Console.ReadKey();
}
}
}
感覺自己知道的太少了、對委託和事件、泛型、介面 這些語法理解太淺了、甚至都不理解!呵,學起來也比較困難,但又不能不去看、不去學、那樣都無法往下去學習其他的!
希望像我這樣的迷茫者可以多看一下部落格園的老人們寫的經典部落格,多看看一書、呵…… 如果大家們有更好學習方法,可以寫出來,交流一下,,這樣的文章放到首頁可能會不合適……
可以看一下張子陽的部落格,很不錯、初學者應該去看:http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx
原文地址:http://www.cnblogs.com/ipwjh/archive/2009/10/08/1578947.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-616326/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C# 中的委託和事件C#事件
- 拋磚引玉:拷貝物件,CopyObject物件Object
- C#中的委託和事件(續)C#事件
- c# 委託和事件C#事件
- C# 事件委託C#事件
- C# 委託事件C#事件
- 拋磚引玉——通用分頁儲存過程儲存過程
- C#:委託和自定義事件C#事件
- 徹底搞清楚c#中的委託和事件C#事件
- C#委託與事件C#事件
- C# 事件 vs 委託C#事件
- C# - 委託與事件C#事件
- 詳解C#委託和事件(一)C#事件
- 詳解C#委託和事件(二)C#事件
- C# 之委託與事件C#事件
- 事件模型和事件委託事件模型
- C#中的委託C#
- JavaScript 中的閉包和事件委託JavaScript事件
- C# 委託,事件和Lambda表示式 (轉)C#事件
- 拋磚引玉,AsProtect 修正 import表的一些想法 (579字)Import
- Flutter解析複雜JSON泛型方案--拋磚引玉篇FlutterJSON泛型
- ASP.NET中定製自己的委託和事件引數類ASP.NET事件
- C# 自定義事件和委託(精彩轉載)C#事件
- JS事件流和事件委託JS事件
- 詳解C#委託與事件C#事件
- javascript中的事件委託(代理)JavaScript事件
- jquery-中的事件委託jQuery事件
- js 事件的冒泡和委託JS事件
- 事件委託事件
- 分享一下自己的簡歷, 拋磚引玉歡迎討論
- C# 委託原理刨析,外加和事件對比C#事件
- 委託、事件--委託例項篇事件
- 委託、Lambda表示式、事件系列01,委託是什麼,委託的基本用法,委託的Method和Target屬性事件
- C# 委託(delegate)、泛型委託和Lambda表示式C#泛型
- 委託與事件-委託詳解(一)事件
- C#中的委託,匿名方法和Lambda表示式C#
- C#規範整理·泛型委託事件C#泛型事件
- jQuery 事件委託jQuery事件