2010-06-09 22 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; 
}