委託與事件

2021-08-26 05:46:08 字數 1455 閱讀 3427

早在前面已經說清楚了,委託呢?就是例如:a叫b去把燈給開啟,這就是乙個典型的委託,而b把燈開啟了,燈被開啟了,就是乙個事件。下面,就以乙個典型的例子,來說說我們如何的應用委託與事件。

請看如下的題目要求:

實現程式時,我們經常要對使用者的輸入進行驗證。比如你的程式需要使用者輸入電子郵件資訊,在這個資訊儲存或使用之前,常常要對它進行驗證,看他輸入的資訊是否合法電子郵件格式。這裡我們就建立乙個簡單的電子郵件驗證程式,要求如下:

對電子郵件資訊的@字元的驗證:

存在@字元;

只允許有乙個@字元;

@字元只允許放在中間某一位置上。

對電子郵件的使用者名稱部分的驗證

不允許小於三個字元;

不允許出現逗號;

數字不能在使用者名稱的開頭。

建立委託beginvaliddata,用於提示使用者驗證開始,建立事件onbeginvalid。在開始驗證使用者的輸入資料前應引發此事件,並且該事件應提示使用者驗證開始。

建立委託endvaliddata,用於提示使用者驗證結束,並給出驗證結果,表明程式對使用者的資訊是接受還是拒絕。建立事件onendvalid,在對使用者的輸入資料驗證後引發此事件,並且該事件應提示使用者驗證結束。

具體的參見以下的實現**

using system;

using system.collections.generic;

using system.linq;

using system.net.mail;

using system.text;

using system.threading.tasks;

namespace test3

private void validatsym()

// 表明字串中存在多於乙個@符號

if (index != lastindex)

//表明@符號在字串的開始位置

if (index == 0)

//表明@符號在字串末尾

if (lastindex == vldemail.length -1)

//@符號部分通過驗證

acceept = true;

}private void validusername()

//表示使用者名稱中有逗號存在

if (username.indexof(',') > -1)

//表示使用者名稱第一位是數字

if (char.isdigit(username, 0))

//使用者名稱通過驗證

acceept = true;

}static void main(string args)

private static void obj_onendvalid(string s)

private static void obj_onbeginvalid()

}}

通過這個簡單的**案例和練習,希望能夠幫助到有技術疑惑的程式設計愛好者。

委託與事件

1.建立乙個類,分別建立加 減 乘 除四個方法,通過委託和事件,實現 輸入兩個計算數,完成所有的四個方法的呼叫,計算出結果顯示。建立乙個警察 policeman 類,乙個小偷 thief 類,例項化兩個類的物件,當policeman類中警笛鳴響 alarm 方法執行時,觸發小偷逃跑 runaway ...

委託與事件

委託就是以方法做引數進行傳遞,它定義的是方法的框架,如果用這個委託,所宣告的方法就必須按照給定的引數及返滬型別進行處理。宣告委託的方式 delegate 返回值型別 委託型別名 引數 比如delegate void stringprocess string s 注意這裡的除了前面的delegate,...

委託與事件

委託與事件 一 委託 delegate 1 委託是一種可以把引用儲存為函式的型別。2 在定義了委託後,就可以宣告該委託型別的變數,接著把這個變數初始化為與委託有相同返回型別和引數類別的函式引用,之後,就可以使用委託變數呼叫這個函式,就像該變數是乙個函式一樣。如 double multiply dou...