{"id":105,"date":"2007-11-27T12:07:00","date_gmt":"2007-11-27T12:07:00","guid":{"rendered":"https:\/\/wdev-blog.azurewebsites.net\/index.php\/2007\/11\/27\/anonimous-functions-in-c-3-0\/"},"modified":"2007-11-27T12:07:00","modified_gmt":"2007-11-27T12:07:00","slug":"anonimous-functions-in-c-3-0","status":"publish","type":"post","link":"http:\/\/panahy.nl\/index.php\/2007\/11\/27\/anonimous-functions-in-c-3-0\/","title":{"rendered":"Anonimous Functions in C# 3.0"},"content":{"rendered":"<div>\n<p><span lang=\"EN-US\">These parts are coming from the Language Specification document:<?xml:namespace prefix = o \/><o:p><\/o:p><\/span><\/p>\n<p><span lang=\"EN-US\"><o:p><\/o:p><\/span><\/p>\n<p><span style=\"font-family:Consolas;color:black;\">x =&gt; x + <\/span><span style=\"font-family:Consolas;color:red;\">1<\/span><span style=\"font-family:Consolas;color:black;\"> <\/span><span style=\"font-family:Consolas;color:green;\">\/\/ Implicitly typed, expression body<br \/><\/span><span style=\"font-family:Consolas;color:black;\">x =&gt; { <\/span><span style=\"font-family:Consolas;color:blue;\">return<\/span><span style=\"font-family:Consolas;color:black;\"> x + <\/span><span style=\"font-family:Consolas;color:red;\">1<\/span><span style=\"font-family:Consolas;color:black;\">; } <\/span><span style=\"font-family:Consolas;color:green;\">\/\/ Implicitly typed, statement body<br \/><\/span><span style=\"font-family:Consolas;color:black;\">(<\/span><span style=\"font-family:Consolas;color:blue;\">int<\/span><span style=\"font-family:Consolas;color:black;\"> x) =&gt; x + <\/span><span style=\"font-family:Consolas;color:red;\">1<\/span><span style=\"font-family:Consolas;color:black;\"> <\/span><span style=\"font-family:Consolas;color:green;\">\/\/ Explicitly typed, expression body<br \/><\/span><span style=\"font-family:Consolas;color:black;\">(<\/span><span style=\"font-family:Consolas;color:blue;\">int<\/span><span style=\"font-family:Consolas;color:black;\"> x) =&gt; { <\/span><span style=\"font-family:Consolas;color:blue;\">return<\/span><span style=\"font-family:Consolas;color:black;\"> x + <\/span><span style=\"font-family:Consolas;color:red;\">1<\/span><span style=\"font-family:Consolas;color:black;\">; } <\/span><span style=\"font-family:Consolas;color:green;\">\/\/ Explicitly typed, statement body<br \/><\/span><span style=\"font-family:Consolas;color:black;\">(x, y) =&gt; x * y <\/span><span style=\"font-family:Consolas;color:green;\">\/\/ Multiple parameters<br \/><\/span><span style=\"font-family:Consolas;color:black;\">() =&gt; Console.WriteLine() <\/span><span style=\"font-family:Consolas;color:green;\">\/\/ No parameters<br \/><\/span><span style=\"font-family:Consolas;color:blue;\">delegate<\/span><span style=\"font-family:Consolas;color:black;\"> (<\/span><span style=\"font-family:Consolas;color:blue;\">int<\/span><span style=\"font-family:Consolas;color:black;\"> x) { <\/span><span style=\"font-family:Consolas;color:blue;\">return<\/span><span style=\"font-family:Consolas;color:black;\"> x + <\/span><span style=\"font-family:Consolas;color:red;\">1<\/span><span style=\"font-family:Consolas;color:black;\">; } <\/span><span style=\"font-family:Consolas;color:green;\">\/\/ Anonymous method expression<br \/><\/span><span style=\"font-family:Consolas;color:blue;\">delegate<\/span><span style=\"font-family:Consolas;color:black;\"> { <\/span><span style=\"font-family:Consolas;color:blue;\">return<\/span><span style=\"font-family:Consolas;color:black;\"> <\/span><span style=\"font-family:Consolas;color:red;\">1<\/span><span style=\"font-family:Consolas;color:black;\"> + <\/span><span style=\"font-family:Consolas;color:red;\">1<\/span><span style=\"font-family:Consolas;color:black;\">; } <\/span><span style=\"font-family:Consolas;color:green;\">\/\/ Parameter list omitted<o:p><\/o:p><\/span><\/p>\n<p><span style=\"font-family:Consolas;color:green;\">\/\/ Example:<br \/><\/span><span style=\"font-family:Consolas;color:blue;\">delegate<\/span><span style=\"font-family:Consolas;color:black;\"> <\/span><span style=\"font-family:Consolas;color:blue;\">bool<\/span><span style=\"font-family:Consolas;color:black;\"> Filter(<\/span><span style=\"font-family:Consolas;color:blue;\">int<\/span><span style=\"font-family:Consolas;color:black;\"> i);<br \/><\/span><span style=\"font-family:Consolas;color:blue;\">void<\/span><span style=\"font-family:Consolas;color:black;\"> F() {<br \/><\/span><span style=\"font-family:Consolas;color:black;\">Filter f = (<\/span><span style=\"font-family:Consolas;color:blue;\">int<\/span><span style=\"font-family:Consolas;color:black;\"> n) =&gt; n &lt; <\/span><span style=\"font-family:Consolas;color:red;\">0<\/span><span style=\"font-family:Consolas;color:black;\">;<br \/><\/span><span style=\"font-family:Consolas;color:black;\">list.FindAll(f);<br \/><\/span><span style=\"font-family:Consolas;color:black;\">}<\/span><\/p>\n<p><span style=\"font-family:Consolas;color:blue;\">delegate<\/span><span style=\"font-family:Consolas;color:black;\"> <\/span><span style=\"font-family:Consolas;color:blue;\">void<\/span><span style=\"font-family:Consolas;color:black;\"> D();<br \/><\/span><span style=\"font-family:Consolas;color:blue;\">void<\/span><span style=\"font-family:Consolas;color:black;\"> F() {<br \/><\/span><span style=\"font-family:Consolas;color:black;\"><\/span><span style=\"font-family:Consolas;color:blue;\">int<\/span><span style=\"font-family:Consolas;color:black;\"> n;<br \/><\/span><span style=\"font-family:Consolas;color:black;\">D d = () =&gt; { n = <\/span><span style=\"font-family:Consolas;color:red;\">1<\/span><span style=\"font-family:Consolas;color:black;\">; };<br \/><\/span><span style=\"font-family:Consolas;color:black;\">d();<\/p>\n<p><\/span><span style=\"font-family:Consolas;color:black;\"><\/span><span style=\"font-family:Consolas;color:green;\">\/\/ Error, n is not definitely assigned<br \/><\/span><span style=\"font-family:Consolas;color:black;\">Console.WriteLine(n);<br \/><\/span><span style=\"font-family:Consolas;color:black;\">}<o:p><\/o:p><\/span><\/p>\n<p><span lang=\"EN-US\"><o:p><\/o:p><\/span><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>These parts are coming from the Language Specification document: x =&gt; x + 1 \/\/ Implicitly typed, expression bodyx =&gt; { return x + 1; } \/\/ Implicitly typed, statement body(int x) =&gt; x + 1 \/\/ Explicitly typed, expression body(int x) =&gt; { return x + 1; } \/\/ Explicitly typed, statement body(x, y) &hellip; <a href=\"http:\/\/panahy.nl\/index.php\/2007\/11\/27\/anonimous-functions-in-c-3-0\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Anonimous Functions in C# 3.0&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[85,86,43],"tags":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"post-thumbnail":false},"uagb_author_info":{"display_name":"Pouya Panahy","author_link":"http:\/\/panahy.nl\/index.php\/author\/pouya\/"},"uagb_comment_info":1,"uagb_excerpt":"These parts are coming from the Language Specification document: x =&gt; x + 1 \/\/ Implicitly typed, expression bodyx =&gt; { return x + 1; } \/\/ Implicitly typed, statement body(int x) =&gt; x + 1 \/\/ Explicitly typed, expression body(int x) =&gt; { return x + 1; } \/\/ Explicitly typed, statement body(x, y)&hellip;","_links":{"self":[{"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/posts\/105"}],"collection":[{"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/comments?post=105"}],"version-history":[{"count":0,"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/posts\/105\/revisions"}],"wp:attachment":[{"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/media?parent=105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/categories?post=105"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/tags?post=105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}