object x= default(....); Dynamisch je nach typ?
-
Hallo,
habe ein object, und will nun einen default wert entsprechend eines Typs angeben:
Type foo= typeof(int); object y = default(???foo???);
-
Das hier?
int y = ( int )Activator.CreateInstance( t, new object[0], new object[0] );
-
Object obj = xyz; Type objType = obj.GetType();
Mit GetType() kannst du dann je nach Typ ein Objekt instanzieren. Beispielsweise über eine If/Select Sturktur oder dergleichen. Abgefragt lautet das dann:
if (obj.GetType() == typeof(int)) {} if (obj.GetType() == typeof(string)) {}
Zu testen wäre ob es mit objType im DirectCast funktioniert.
objType objEnd = (objType)obj;
Nur als Vorschlag.
-
Mal aus Interesse: Abgesehen davon, dass mir der Sinn der vielen If-Abfragen verschlossen bleibt, willst du echt für jedes Mögliche Projekt einen solchen Test machen? Das sieht ziemlich statisch und schlecht wartbar aus. Und was bezweckst du mit dem Cast (Was ist ein DirectCase??)?
-
Hm so viele If Abfragen sind das nun auch nicht.
Der DirectCast dient dazu, eine Instanz eines Objektes mit einem anderen Typ aufzurufen, und das geht natürlich auch nur bei passenden Type's.
Ist dir DirectCast unbekannt?
Sinnvoll zum Beispiel für:
foreach (Control c in GroupControls.Controls) { if (c.GetType() == typeof(TextBox)) { TextBox TargetControl = (TextBox)c; // Nun kann das TargetControl als TextBox mit allen Properties genutzt werden. } }
-
In deinem Orginalpost stand etwas von DirectCase. Was ein Cast ist, weiß ich...
Ansonsten funktioniert dein Beispiel natürlich (wobei ich lieber is und as verwenden würde). Aber MasterBlaster hatte doch was ganz anderes vor...
-
David_pb schrieb:
In deinem Orginalpost stand etwas von DirectCase. Was ein Cast ist, weiß ich...
Ansonsten funktioniert dein Beispiel natürlich (wobei ich lieber is und as verwenden würde). Aber MasterBlaster hatte doch was ganz anderes vor...Wegen dem DirectCase/t, ich hatte mich verschrieben.
Der Aufgaben/Fragestellung nach, war meine Antwort nach dazu passend. Meine Ansicht, wenn es dem nicht so sein sollte... tjo Pech.