一、委託呼叫方式
1. 最原始版本:
delegatestring plusstringhandle(string x, string
y);
class
program
static
string plusstring(string x, string
y)
}
2. 原始匿名函式版:去掉「plusstring」方法,改為
plusstringhandle phandle = new plusstringhandle(delegate(string x, stringy) );
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"));
如果只有乙個引數
delegatevoid writestringhandle(string
str);
static
void main(string
args)
二、委託宣告方式
1. 原始宣告方式見上述demo
2. 直接使用.net framework定義好的泛型委託 func 與 action ,從而省卻每次都進行的委託宣告。
staticvoid main(string
args)
是乙個整數
", p), 10
); console.read();
}static
void writeprint(actionaction, t t)
,值為:
", t.gettype(), t);
action(t);
}
3. 再加上個擴充套件方法,就能搞成所謂的「鏈式程式設計」啦。
classprogram
}
static
class
extentions
。。。。。。
", source);
return
func(source);
}}
看這個**是不是和我們平時寫的"list.where(p => p.age > 18)"很像呢?沒錯where等方法就是使用類似的方式來實現的。
好了,我總結完了,如有遺漏,還望補上,臣不盡感激。
「Hello world 」的N種寫法
在初學一門程式語言的時候,寫乙個 hello world 程式是最常見的入門方法。通過寫乙個成功的 hello world 可以實踐這門語言最基本的語法特性,還可以帶給自己成就感,真是一舉兩得。c c 語言本身有很多特性,如果能夠將這些技術分解出來變成乙個個的 hello world 並且將這些技術...
「Hello World 」的N種寫法 c c
include include include int main 6.話分兩頭的 hello world 有了c 的類,我們就可以光明正大的在 main 函式執行之前和之後做感興趣的事情了。我們可以宣告乙個全域性的類的例項,這樣,在 main 函式執行之前會呼叫這個類的建構函式,結束之後則會呼叫析構...
js匿名函式的N種寫法
匿名函式沒有實際名字,也沒有指標,怎麼執行滴?其實大家可以看看小括號的意義就應該可以理解。小括號有返回值,也就是小括號內的函式或者表示式的返回值,所以說小括號內的function返回值等於小括號的返回值,不難理解 function 可以將沒有名字的函式執行了把 關於匿名函式寫法,很發散 最常見的用法...