C 4 0新特性學習(三) 泛型委託

2021-09-08 15:41:17 字數 1103 閱讀 7354

為了方便開發,.net類庫預定好了幾個泛型委託。

1 func系列委託    

func系列委託的定義:

public delegate tresult func();       

public delegate tresult func(t arg);       

public delegate tresult func(t1 arg1,t2 arg2);       

public delegate tresult func(t1 arg1,t2 arg2,t3 arg3);       

public delegate tresult func(t1 arg1,t2 arg2,t3 arg3,t4 arg4);

func委託宣告的最後乙個泛型型別引數是委託所接收方法的返回值型別,前面的泛型引數就是委託所接收方法的形參型別。

例子: 

static int add(int x, int y)

funcfunc = add;

int sum = func(5, 6);

console.writeline(sum);

2 action系列委託與methodinvoker

func泛型委託所能接收的方法都有返回值,action系列委託是接收返回void的系統預定義委託

public delegate void action();

public delegate void action(t obj);

public delegate void action(t1 arg1,t2 arg2);

public delegate void action(t1 arg1,t2 arg2,t3 arg3);

例子:static void show(string str)

actionaction = show;

action("hello world!");

console.readkey();

methodinvoker委託位於system.windows.forms中,宣告如下:

public delegate void methodinvoker();和無型別引數的action委託等價,用法也一樣。

C 4 0的新特性

先來看看dynamic的乙個例子 dynamic dyn 1 console.writeline dyn.gettype dyn 1.234 console.writeline dyn.gettype dyn ojlovecd console.writeline dyn.gettype 輸出 sys...

C 4 0新特性學習資料彙總

今天了解了一下c 4.0的一些新特性,並在vs2010裡試了幾把,主要的特性包括 1.dynamic binding 2.named and optional arguments 3.features for com interop 4.variance 5.relationship with vi...

C 4 0 新特性之引數

c 4.0中新加了幾種引數,今天來了解一下 1.預設引數 c 4.0 現在對方法,構造器,以及索引器支援使用可預設的引數 當引數的預設值作為宣告的一部分被指定的時候,引數就是可預設的。static void changevalue intx,inty 3 int y 有乙個預設的引數3,因此它是乙個...