2010-06-09 21 views
6

因此,考慮在你的代碼的靜態類型,你可以做C#:如何找到運行時類型的默認值?

var defaultMyTypeVal = default(MyType); 

你會怎麼做給定類型的變量,所以你可以在運行時使用它是一回事嗎?

換句話說,如何在沒有大量if語句或使用泛型的情況下實現以下方法(因爲我不知道在編譯時傳入方法的類型)?

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

我已經在回答這個問題,下面的信息:[在運行時確定任意類型的默認值(http://stackoverflow.com/questions/2490244/default-value-of-a-type/7881481#7881481)希望這有助於... Mark – 2011-10-24 20:41:46

回答

10

this後:

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