C# und das Schlüsselwort dynamic
Mit der neuen Version, von C# und dem Framework in der Version 4.0, zieht nun die Dynamik in das Leben eines C# Entwicklers ein.
Was heißt das nun?
…
Die Entwicklung wird halt ein Wenig Interessanter, und bietet uns nun neue Möglichkeiten.
Natürlich ist dieses Feature, in erster Linie eine Erweiterung in Richtung der Dynamischen Programmiersprachen und der COM Interoperabilität, da die Bindung bei diesem Schlüsselwort, an einen expliziten Typen erst zur Laufzeit anhand von definierten Regeln stattfindet, entfällt einerseits die Typenkonvertierung, aber auch das aufwendige benutzen der Reflection zB. beim aufrufen von Methoden.
Jedoch hat die Medaille wie so oft, abgesehen von der Performance auch noch eine Kehrseite, wie zB. in diesem Code.
namespace ConsoleApplication6
{
class Program
{
static void Main(string[] args)
{
dynamic dummyObj = new Dummy();
//das klappt noch ohne Probleme
dummyObj.Name = "Schmitt";
/* ohne dynamic würde sich dieser Code nicht Compilieren lassen
* jedoch mit dynamic, fällt dieser Fehler erst zu Laufzeit auf
*/
dummyObj.name = "Schmitt";
// Da der Typ, zum jetzigen Zeitpunkt, noch nicht bekannt ist, könnten aber auch nicht vorhandene Methoden aufgerufen werden.
string fullName = dummyObj.GetFullName();
}
}
public class Dummy :
{
public string Name { get; set; }
}
}
