どのようにC#で次のようなことができますか?Nullableの型を取得する方法<Enum>?
Type _nullableEnumType = typeof(Enum?);
私はあなたがこれを行うことができたときにそれを行うことができない理由より良い質問です推測:
Type _nullableDecimalType = typeof(decimal?);
どのようにC#で次のようなことができますか?Nullableの型を取得する方法<Enum>?
Type _nullableEnumType = typeof(Enum?);
私はあなたがこれを行うことができたときにそれを行うことができない理由より良い質問です推測:
Type _nullableDecimalType = typeof(decimal?);
Enum
は列挙ではありません - それは、列挙型の基底クラスです、参照型(すなわち、class
)です。これは、Enum?
が無効であることを意味します。Nullable<T>
は、T : struct
、およびEnum
という制限を満たしていません。
ので:どちらかあなたはまた、それを注意することが必要かもしれませんtypeof(Nullable<>).MakeGenericType(enumTypeKnownAtRuntime)
、または単により多く、typeof(EnumTypeKnownAtCompileTime?)
を使用する:あなたは通常Enum
の使用を避ける必要がありますので
Enum x = {some value};
は、ボクシング操作ですパラメータなどとして入力します。
うわー私はそれを逃した:) –
偉大な説明マーク。ありがとう。 – devlife
このようなタイプは実際には存在しません。どのように使用する予定ですか? 'Enum'自体は参照型であり、値型ではありません。 –