一、實驗目的
1. 掌握擴充套件函式的用法;
2. 掌握c#委託和事件的用法;
3. 掌握c#繼承和多型概念;
4. 掌握常用介面的使用方法。
二、實驗內容
(實驗過程中編寫的程式複製到本檔案中,下課整理後上交)
1. 編寫乙個靜態類myextensions,擴充套件.*** framework基本型別的功能。
1)定義乙個擴充套件方法ispalindrome,擴充套件string類的功能,來判斷字串是否為回文(指順讀和倒讀內容都一樣的文字)。為提高程式效率,該方法中不能直接呼叫reverse方法。
2)定義乙個擴充套件方法reversedigits,允許int將自己的值倒置,例如將整型1234呼叫reversedigits,返回結果為4321。
using system;
using
using system.linq;
using system.text;
using system.threading.tasks;
namespace experiment2
public static int reversedigits(this int num)
}class program
}}2. 應用委託和泛型集合類知識,完成以下程式。
程式框架:
源程式2:
using system;
using
using system.linq;
using system.text;
using system.threading.tasks;
namespace experment2_2;
生成委託例項
numberpredicate evenpredicate = iseven;
利用委託變數呼叫iseven
console.writeline( "call iseven using a delegate variable: ",evenpredicate(2));
選出偶數
list< int > evennumbers = filterarray( numbers, evenpredicate );
描述並輸出
displaylist( "use iseven to filter even numbers: ", evennumbers ); //濾過
選出素數並輸出
numberpredicate primepredicate = isprime;
list prime = filterarray_prime(numbers, primepredicate);
displaylist_prime("use isprime to filter even numbers: ", prime);
}private static list< int > filterarray( int intarray,numberpredicate predicate )
private static list< int > filterarray_prime( int intarray,numberpredicate predicate )
//偶數判斷函式
private static bool iseven( int number )
//判斷是否素數
private static bool isprime( int number )
//列表元素輸出
private static void displaylist(string description, list list)
{console.write(description);
foreach (int number in list)
console.write(number + " ");
C委託事件
有事件,就會有對事件進行處理的方法,而事件和處理方法之間是怎麼聯絡起來的呢?委託就是他們中間的橋梁,事件發生時,委託會知道,然後將事件傳遞給處理方法,處理方法進行相應處理。事件的型別一定是委託,委託為引發事件的類擔當事件傳送器的角色 比如在winform中最常見的是按鈕的click事件,它是這樣委託...
C委託與事件
我們拋棄各種c 參考書中桀驁難懂的事件與委託概念,設想乙個情景來理解事件與委託的使用 有一家it公司,董事長不希望自己的雇員在上班時間玩遊戲,但又不可能每時每刻都盯著每個雇員,因此,他希望使用一種新的方式實現監視雇員的效果 如果有雇員違反規定,某個裝置或專門的監查人員將自動發出乙個訊息通知他,董事長...
c委託與事件詳解
c 委託與事件詳解.txt花前月下,不如花錢 日 下。葉子的離開,是因為風的追求還是樹的不挽留?乾掉熊貓,我就是國寶!別和我談理想,戒了!委託和事件在 framework中的應用非常廣泛,然而,較好地理解委託和事件對很多接觸c 時間不長的人來說並不容易。它們就像是一道檻兒,過了這個檻的人,覺得真是太...