Presentation is loading. Please wait.

Presentation is loading. Please wait.

Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); object calc.

Similar presentations


Presentation on theme: "Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); object calc."— Presentation transcript:

1

2

3

4

5

6

7

8 Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); object calc = GetCalculator(); Type calcType = calc.GetType(); object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] { 10, 20 }); int sum = Convert.ToInt32(res); object calc = GetCalculator(); Type calcType = calc.GetType(); object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] { 10, 20 }); int sum = Convert.ToInt32(res); ScriptObject calc = GetCalculator(); object res = calc.Invoke("Add", 10, 20); int sum = Convert.ToInt32(res); ScriptObject calc = GetCalculator(); object res = calc.Invoke("Add", 10, 20); int sum = Convert.ToInt32(res); dynamic calc = GetCalculator(); int sum = calc.Add(10, 20); dynamic calc = GetCalculator(); int sum = calc.Add(10, 20); Statically typed to be dynamic Dynamic method invocation Dynamic conversion

9 demo

10

11 string[] strings = GetStrings(); string last = strings[strings.Length – 1]; string[] strings = GetStrings(); string last = strings[strings.Length – 1];

12 object strings = GetDynamicObject(); string last = strings[strings.Length – 1]; object strings = GetDynamicObject(); string last = strings[strings.Length – 1];

13 object strings = GetDynamicObject(); string last = strings[strings~.Length – 1]; object strings = GetDynamicObject(); string last = strings[strings~.Length – 1];

14 object strings = GetDynamicObject(); string last = strings~[strings~.Length – 1]; object strings = GetDynamicObject(); string last = strings~[strings~.Length – 1];

15 object strings = GetDynamicObject(); string last = strings~[strings~.Length ~– 1]; object strings = GetDynamicObject(); string last = strings~[strings~.Length ~– 1];

16 object strings = GetDynamicObject(); string last = (string)strings~[strings~.Length ~– 1]; object strings = GetDynamicObject(); string last = (string)strings~[strings~.Length ~– 1];

17 object strings = GetDynamicObject(); string last = ~(string)strings~[strings~.Length ~– 1]; object strings = GetDynamicObject(); string last = ~(string)strings~[strings~.Length ~– 1];

18 object strings = GetDynamicObject(); string last = ~(string)strings~[strings~.Length ~– 1]; object strings = GetDynamicObject(); string last = ~(string)strings~[strings~.Length ~– 1];

19 object strings = GetDynamicObject(); string last = ~(string)strings~[strings~.Length ~– 1]; object strings = GetDynamicObject(); string last = ~(string)strings~[strings~.Length ~– 1]; 

20 object strings = GetDynamicObject(); string last; dynamic { last = strings[strings.Length – 1]; } object strings = GetDynamicObject(); string last; dynamic { last = strings[strings.Length – 1]; }

21 object strings = GetDynamicObject(); string last; dynamic { last = strings[strings.Length – 1]; } object strings = GetDynamicObject(); string last; dynamic { last = strings[strings.Length – 1]; }

22 object strings = GetDynamicObject(); string last; dynamic { last = strings[strings.Length – 1]; } object strings = GetDynamicObject(); string last; dynamic { last = strings[strings.Length – 1]; } 

23 object strings = GetDynamicObject(); string last = strings[dynamic(strings).Length – 1]; object strings = GetDynamicObject(); string last = strings[dynamic(strings).Length – 1];

24 object strings = GetDynamicObject(); string last = strings[dynamic(strings).Length – 1]; object strings = GetDynamicObject(); string last = strings[dynamic(strings).Length – 1];

25 object strings = GetDynamicObject(); string last = strings[dynamic(strings).Length – 1]; object strings = GetDynamicObject(); string last = strings[dynamic(strings).Length – 1]; 

26 dynamic strings = GetDynamicObject(); string last = strings[strings.Length – 1]; dynamic strings = GetDynamicObject(); string last = strings[strings.Length – 1];

27 dynamic strings = GetDynamicObject(); string last = strings[strings.Length – 1]; dynamic strings = GetDynamicObject(); string last = strings[strings.Length – 1];

28 dynamic strings = GetDynamicObject(); string last = strings[strings.Length – 1]; dynamic strings = GetDynamicObject(); string last = strings[strings.Length – 1];

29

30 dynamic Foo foo = GetDynamicFoo(); dynamic foo = GetDynamicFoo();

31  dynamic Foo foo = GetDynamicFoo(); dynamic foo = GetDynamicFoo();

32 dynamic result = Math.Abs((double)d); dynamic result = Math.Abs(d);

33  dynamic result = Math.Abs((double)d); dynamic result = Math.Abs(d);

34

35 M(GetFoo(), d); Bind with compile-time type Bind with compile-time type Bind with runtime type Bind with runtime type

36 M(GetFoo(), d); Bind with compile-time type Bind with compile-time type Bind with runtime type Bind with runtime type

37

38 Type calcType = calc.GetType(); object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] { 10, 20 }); int sum = Convert.ToInt32(res); Type calcType = calc.GetType(); object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] { 10, 20 }); int sum = Convert.ToInt32(res); int sum = calc.Add(10, 20);

39 Code Like the Wind with Microsoft Visual Basic 2010 – Petree Hall D November 18, 13:00 - 13:45 – Petree Hall D Lucian Wischik Microsoft Visual C# IDE Tips and Tricks November 19, 12:45 - 13:30 – Petree Hall D DJ Park F# for Parallel and Asynchronous Programming November 19, 11:30 - 12:30 – 515A Luke Hoban Microsoft Visual Basic IDE Tips and Tricks November 19, 12:45 - 13:30 – Petree Hall C Dustin Campbell Future Directions for C# and Visual Basic November 17, 11:00 - 12:00 – Hall F Luca Bolognese Using Dynamic Languages to Build Scriptable Applications – November 17, 12:30 - 13:15 – 403AB Dino Viehland Dynamic Binding in C# 4 November 17, 12:30 - 13:15 – Hall F Mads Torgersen

40

41 Built by Developers for Developers….

42 © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

43


Download ppt "Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); object calc."

Similar presentations


Ads by Google