委託的多種寫法

2021-09-08 22:40:32 字數 1796 閱讀 7109

一、委託呼叫方式

1.最原始版本:

delegate string plusstringhandle(string x, string y);

class program

static string plusstring(string x, string y)

}2.原始匿名函式版:去掉「plusstring」方法,改為

plusstringhandle phandle = new plusstringhandle(delegate(string x, string y)

);console.writeline(phandle("abc", "edf"));

3.使用lambdac#3.0+),繼續去掉「plusstring」方法(以下**均不再需要該方法)

plusstringhandle phandle = (string x, string y) =>

;console.writeline(phandle("abc", "edf"));

還有更甚的寫法(省去引數型別)

plusstringhandle phandle = (x, y) =>

;console.writeline(phandle("abc", "edf"));

如果只有乙個引數

delegate void writestringhandle(string str);

static void main(string args)

二、委託宣告方式

1.原始宣告方式見上述demo

2.直接使用.net framework定義好的泛型委託funcaction,從而省卻每次都進行的委託宣告。

static void main(string args)

是乙個整數", p), 10);

console.read();

}static void writeprint(actionaction, t t)

,值為:", t.gettype(), t);

action(t);

}3.再加上個擴充套件方法,就能搞成所謂的鏈式程式設計啦。

class program

}static class extentions

。。。。。。", source);

return func(source);}}

看這個**是不是和我們平時寫的"list.where(p => p.age > 18)"很像呢?沒錯where等方法就是使用類似的方式來實現的。

委託的寫法

using system namespace weituo region 委託的方法 region 寫法一,需要寫出專門委託的函式,需要自定義委託 委託宣告 定義乙個簽名 支援多個輸入引數 delegate double mathaction double in 1,double in 2,doub...

Qt connect的多種寫法

自 加 在main函式中寫乙個定時器,並啟動 1 qtimer timer 2 qobject connect timer,qtimer timeout,5 timer.start 500 1 最基本的,4個引數 1 阻塞 2qeventloop loop 3 qobject connect thi...

委託的幾種寫法

參考自jeffrey zhao的文章 net1.x public delegate void mydel3 string message public class methods public void testmethod2 string msg public class deltest 需要使用...