2010-05-13 12 views

Antwort

3

Zum Beispiel bei Verwendung von Reflexion.

Beispiel, so etwas wie folgt aus:

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

würde als geworden:

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

Das ist eine große Verbesserung ist, denke ich.

Aber es gibt mehr Themen, in denen dies nützlich sein kann. Zum Beispiel, wenn sie mit COM-Interop-Objekte arbeiten könnte dies nützlich sein, schauen Sie sich: http://www.devx.com/dotnet/Article/42590

2

Es ist auch dynamische Sprachen wie Ironpython/IronRuby verwendet, wenn das Einbetten Ladetypen in externen Dateien definiert zu ermöglichen, und den Zugriff auf sie mehr direkt in C#