20
Chander Dhall Microsoft MVP

From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

  • Upload
    credera

  • View
    1.217

  • Download
    0

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Chander Dhall

Microsoft MVP

Page 2: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

A type that defines a method signature

Delegates – WHAT?

Page 3: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Function pointers but type safe

Delegates – WHAT?

Page 4: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Allow methods to be passed as

parameters

Delegates – WHAT?

Page 5: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Can be chained together

Delegates – WHAT?

Page 6: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Decoupling Code

Delegates – WHY?

Page 7: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Methods as Parameters

Delegates – WHY?

Page 8: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Muli-casting NOT Multi-tasking

Delegates – WHY?

Page 9: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Callbacks and Event Handlers

Delegates – WHY?

Page 10: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

LINQ

Delegates – WHY?

Page 11: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

I can find all this online

Why do I attend your talk?

How to implement?

Where to implement?

How to implement right?

Page 12: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Demo

Page 13: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Expression Trees

Reference executable code

Page 14: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Expression Trees

References executable code

Form of Data structure

Page 15: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Expression Trees

Expression

Lambda

Expression

Binary

Expression

Expression

<Tdelegate>

Constant

Expression etc

Page 16: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Linq To Objects

C# code with

lambdaIL using delegates Results

Page 17: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Linq To Objects

C# code with

lambda

IL using

expression treesDynamic Sql

To

SQ

L p

rovid

er

Results

Page 18: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Immutable so cacheable

Expression Trees

Page 19: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Composable to complex behavior

Expression Trees

Page 20: From delegates, to lamdas and expression trees your guide to elegant code in c#.net 4.0

Compiled to delegate JITed to native code

Expression Trees