C# で次のようなことを行うにはどうすればよいでしょうか?
Type _nullableEnumType = typeof(Enum?);
より良い質問は、これができるのになぜそれができないのかということだと思います:
Type _nullableDecimalType = typeof(decimal?);
C# で次のようなことを行うにはどうすればよいでしょうか?
Type _nullableEnumType = typeof(Enum?);
より良い質問は、これができるのになぜそれができないのかということだと思います:
Type _nullableDecimalType = typeof(decimal?);
Enum
は列挙型ではありません - 列挙型の基本クラスであり、参照型 (つまり a class
) です。これは、 という制限があり、それを満たさないため、Enum?
は違法であることを意味します。Nullable<T>
T : struct
Enum
したがって、 を使用するかtypeof(Nullable<>).MakeGenericType(enumTypeKnownAtRuntime)
、より簡単に、typeof(EnumTypeKnownAtCompileTime?)
次の点にも注意してください。
Enum x = {some value};
はボックス化操作Enum
であるため、通常はパラメーターなどとして使用することは避けて