事件與介面程式設計
事件,用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程式設計多型
- 依賴注入與面向介面程式設計思想依賴注入程式設計
- C#程式設計之委託與事件(一)C#程式設計事件
- C#程式設計之委託與事件(二)C#程式設計事件
- 面向介面程式設計程式設計
- Java介面程式設計Java程式設計
- 事件驅動程式設計事件程式設計
- 談談依賴注入與面向介面程式設計依賴注入程式設計
- 事件、契約設計與BDD事件
- Matlab與C語言程式的應用程式設計介面(轉)MatlabC語言程式設計
- 從零開始的Java程式設計之抽象與介面Java程式設計抽象
- 面向介面的程式設計+MVC程式設計MVC
- (03)Flink 程式設計介面程式設計
- 以太坊的程式設計介面程式設計
- 面向介面程式設計把握不好程式設計
- 程式設計之路-介面美化 (轉)程式設計
- API介面:原理、設計與應用API
- java抽象類與介面——設計模式Java抽象設計模式
- 程式設計能力與程式設計年齡程式設計
- java 介面,介面的特性,介面實現多型,面向介面程式設計Java多型程式設計
- Spark開發-RDD介面程式設計Spark程式設計
- JS 中國象棋程式(0):介面設計JS
- 非同步程式設計:基於事件的非同步程式設計模式(EAP)非同步程式設計事件設計模式
- Android事件驅動程式設計(二)Android事件程式設計
- Android事件驅動程式設計(三)Android事件程式設計
- Android事件驅動程式設計(一)Android事件程式設計
- 全面剖析C#介面程式設計之定義介面C#程式設計
- '林子雨大資料' 實驗3 HBase操作與介面程式設計大資料程式設計
- 事件驅動系統設計之將事件檢索與事件處理解耦事件解耦
- 事件匯流排的設計與實現事件
- 從CRUD程式設計切換到事件溯源和區塊鏈程式設計程式設計事件區塊鏈
- 如果今天沒有API介面,今天的程式設計師如何程式設計?API程式設計師
- 程式、程式設計與三論程式設計
- JavaScript高階程式設計筆記 事件冒泡和事件捕獲JavaScript程式設計筆記事件
- Python GUI介面程式設計-初識PythonGUI程式設計
- 理解 TCP(六):網路程式設計介面TCP程式設計
- 《程式設計師的春天:EOM與程式設計師》程式設計師
- Laravel最佳實踐–事件驅動程式設計Laravel事件程式設計