一、委託呼叫方式
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.使用lambda(c#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定義好的泛型委託func與action,從而省卻每次都進行的委託宣告。
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 需要使用...