2010-06-09 8 views
6

So einen statischen Typ in Ihrem Code angegeben SieC#: Wie finde ich den Standardwert für einen Laufzeittyp?

var defaultMyTypeVal = default(MyType); 

tun können Wie würden Sie die gleiche Sache eine Variable vom Typ gegeben tun, damit Sie es während der Laufzeit nicht verwenden kann?

Mit anderen Worten, wie implementiere ich die folgende Methode ohne eine Reihe von if-Anweisungen oder die Verwendung von Generics (weil ich den Typ nicht kenne, den ich in der Methode zur Kompilierzeit übergebe)?

public object GetDefaultValueForType(Type type) { 
    .... 
} 
+1

Ich habe bereits beantwortet diese Frage in dem folgenden Beitrag: [Defaultwert eines beliebigen Typs zur Laufzeit ermitteln] (http://stackoverflow.com/questions/2490244/default-value-of-a-type/7881481 # 7881481) Hoffe das hilft ... Mark –

Antwort

10

Von this Beitrag:

public object GetDefaultValue(Type t) 
{ 
    if (t.IsValueType) { 
     return Activator.CreateInstance(t); 
    } else { 
     return null; 
} 
Verwandte Themen