事件與介面程式設計
事件,用event修飾符來代表一個事件,我們要建立一個C#事件必須按以下順序來掃行:
1,建立或標識一個代表。比如下例中的
public delegate void dele(); //宣告代表,delegate 關鍵字通知編譯器 dele 是一個委託型別 |
2,建立一個包含事件處理代表,呼叫事件處理代表的方法的類,如下例
public class EventClass1 : IEvents //IEvents,是下面我們要講一介面 { public event dele event1;//定義事件成員event1 public void FireEvent() //當事件發生時 { event1(); //呼叫事件處理 } } |
EventClass1繼承介面IEvents,以下後面的EventClass2~4,都是一樣。
3,定義一個或多個把方法連線到事件的類
4,使用事件
4.1 定義事件響應方法,如下例中的
IEvents id1 = new EventClass1(); |
4.2 使用所定義的建構函式建立一個包含事件的物件,如下例中的
id1.event1 += new dele(EventFired1); |
4.3 觸發事件,如下例中的
id1.FireEvent(); |
下面我們來看看介面,我們必須用interface來宣告一個介面。介面宣告可以宣告零個或多個成員。介面的成員必須是方法、屬性、事件或索引器。介面不能包含常數、欄位、運算子、例項建構函式、解構函式或型別,也不能包含任何種類的靜態成員。
所有介面成員都隱式地具有 public 訪問許可權。介面成員宣告包含任何修飾符屬於編譯時錯誤。具體地說,介面成員包含下列任何修飾符屬於編譯時錯誤:abstract、public、 protected、internal、private、virtual、override 或 static。更多的資訊請看msdn help://MS.VSCC/MS.MSDNVS.2052/csspec/html/vclrfcsharpspec_13_1.htm
在下面的例子中,我們宣告IEvents介面,一個方法FireEvent和一個事件event1
public interface IEvents { event dele event1; //定義事件 void FireEvent();//定義介面 } |
在後面的EventClass1~4類是繼承了介面IEvent,因此在這幾個類中必須實現上述一個方法和一個事件。下面的例項可以幫助大家更好的理解。
這是一個簡單的windows Forms,包含一個textbox,幾個labels和一個button,在程式啟動時焦點在textbox,捕捉鍵盤按下事件,除方向鍵外,我能過介面來觸事方向鍵按下事件。
下面的程式碼是一個網上常見的例程,大家可以拷貝下來,儲存為.cs檔案,用CSC編譯就行
程式碼如下:
using System; namespace Events_Interfaces private System.ComponentModel.Container components =null; public Form1() protected override void Dispose( bool disposing ) #region Windows Form. Designer generated code private void InitializeComponent() this.textBox1.Location = new System.Drawing.Point(8, 80); this.label1.Location = new System.Drawing.Point(16, 16); this.Font= new System.Drawing.Font("Comic SansMS",8.25F,System.Drawing.FontStyle.Regular, static void Main() private void Key_Press(object sender, private void button1_Click(object sender, } |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-466028/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [MAUI程式設計]介面多型與實現UI程式設計多型
- 面向介面程式設計程式設計
- (03)Flink 程式設計介面程式設計
- 從零開始的Java程式設計之抽象與介面Java程式設計抽象
- 面向介面的程式設計+MVC程式設計MVC
- 以太坊的程式設計介面程式設計
- 非同步程式設計:基於事件的非同步程式設計模式(EAP)非同步程式設計事件設計模式
- API介面:原理、設計與應用API
- java 介面,介面的特性,介面實現多型,面向介面程式設計Java多型程式設計
- Python GUI介面程式設計-初識PythonGUI程式設計
- 從CRUD程式設計切換到事件溯源和區塊鏈程式設計程式設計事件區塊鏈
- 事件驅動系統設計之將事件檢索與事件處理解耦事件解耦
- 事件匯流排的設計與實現事件
- 如果今天沒有API介面,今天的程式設計師如何程式設計?API程式設計師
- '林子雨大資料' 實驗3 HBase操作與介面程式設計大資料程式設計
- 拯救祭天的程式設計師——事件溯源模式程式設計師事件模式
- Java-GUI程式設計之事件處理JavaGUI程式設計事件
- Laravel最佳實踐–事件驅動程式設計Laravel事件程式設計
- JavaScript的BOM程式設計,事件-第4章JavaScript程式設計事件
- Laravel 最佳實踐 -- 事件驅動程式設計Laravel事件程式設計
- Laravel最佳實踐 -- 事件驅動程式設計Laravel事件程式設計
- API(Application Programming Interface,應用程式程式設計介面)APIAPP程式設計
- Java 併發程式設計之 Condition 介面Java程式設計
- 【程式設計師介面百寶箱】免費常用API介面程式設計師API
- CUDA10.0官方文件的翻譯與學習之程式設計介面程式設計
- 非同步程式設計之事件迴圈機制非同步程式設計事件
- 闢謠!程式設計師和產品FIGHTING事件程式設計師事件
- 【介面功能設計】TopThink介面功能設計建議
- cuda程式設計與gpu平行計算(四):cuda程式設計模型程式設計GPU模型
- 好程式設計師Java教程分享List介面程式設計師Java
- go 模仿JAVA,面向介面/鏈式程式設計GoJava程式設計
- 值得收藏的TCP套介面程式設計文章TCP程式設計
- 【介面錦囊】免費好用的API介面,程式設計師必看API程式設計師
- Java介面程式設計實戰(一)——簡易QQ登入介面Java程式設計
- Lambda表示式入門--函數語言程式設計與函式式介面函數程式設計函式
- 程式設計師程式設計時的簡單方法與技巧程式設計師
- 《Python程式設計練習與解答》之程式設計概論Python程式設計
- [靈性程式設計]函式委託,自動事件程式設計函式事件
- 非同步程式設計 101:寫一個事件迴圈非同步程式設計事件