2010-06-09 9 views
6

Quindi, dato un tipo statico nel codice che si può fareC#: come trovare il valore predefinito per un tipo di esecuzione?

var defaultMyTypeVal = default(MyType); 

Come si farebbe la stessa cosa dato un variabile di tipo in modo da poter utilizzare durante l'esecuzione?

In altre parole, come si implementa il seguente metodo senza un gruppo di istruzioni if ​​o utilizzando Generics (perché non conoscerò il tipo che sto passando al metodo in fase di compilazione)?

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

Ho già risposto a questa questione nel seguente post: [determinare il valore di default di un tipo arbitrario in fase di esecuzione] (http://stackoverflow.com/questions/2490244/valore-predefinito-di-un-tipo/7881481 # 7881481) Spero che questo aiuti ... Marco –

risposta

10

Da this postale:

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