| 

.NET C# Java Javascript Exception

3
Geht das? In PHP beispielsweise definiere ich ein Feld, indem ich
$produkt->name = "Gelbwurst";

schreibe. DAmit hat $produkt ein Feld namens name, obwohl das vorher das Feld noch nicht hatte.
Geht das auch mit C#?
News:
08.02.2011
winnetu 31 2
3 Antworten
7
Da gibt es das ExpandoObject, das genau das kann:
dynamic person = new ExpandoObject();
person.name = "Whatever";
Console.WriteLine(person.name);
08.02.2011
tboerner 509 8
Das ist natürlich am einfachsten. Im Hintergrund passiert jedoch genau das, was auf der msdn Seite (siehe unten) beschrieben wird :-)
CRegenschein 08.02.2011
2
Alternative kannst du ohne DynamicObject zum Beispiel in .Net 2.0 oder 3.5 ein Dictionary verwenden:

//Das Object
public class myObject{
public Dictionary<string,Action>() actions{get;set;}
}

//=======================================================================

//Neue Methoden hinzufügen (Variante 1)
myObject.actions.Add("printHelloWorld",printHelloWorld);

//Hello World Funktion
void printHelloWorld(){
Console.WriteLine("Hello World");
}

//=======================================================================

//Neue Methoden hinzufügen (Variante 2)
myObject.actions.Add("printHelloWorld",delegate(){
Console.WriteLine("Hello World");
};

//=======================================================================

//Methoden ausführen
myObject.actions["printHelloWorld"].Invoke();
08.02.2011
Floyd 14,6k 3 9
Floyd 14,6k 3 9
1
Du kannst ein DynamicObject implementieren - in C# 4.0 / .NET 4

Ein Beispiel ist dort:
http://msdn.microsoft.com/de-de/library/system.dynamic.dynamicobject.aspx
08.02.2011
CRegenschein 645 2 9

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH