9

の反射に相当するものは何ですか :

default(object);  //null

実行時までタイプがない場合、たとえば

public void Method(Type type)
{
   var instance = type.CreateDefault(); //no such method exists, but I expect there is a way of doing this?
} 
4

1 に答える 1

17

どの参照型でも、既定値は null インスタンスです。どの値タイプでも、デフォルト値は を介し​​て取得できますActivator.CreateInstance。しかし、null参照ではなく実際のインスタンスinstanceが必要であることを示唆する変数が呼び出された場合...だから、これを行うことができます:

public object GetDefaultValue(Type type)
{
    return type.IsValueType ? Activator.CreateInstance(type) : null;
} 

...これがどれほど役立つかははっきりしていません。は型の既定であり、型の既定のインスタンスとは異なります。

于 2012-04-27T13:20:13.993 に答える