Menguji apakah suatu objek adalah Enum


90

Saya ingin tahu apakah 'theObject' adalah enum (dari semua jenis enum)

 foreach (var item in Enum.GetValues(theObject.GetType())) {

     //do something
 }

Jawaban:


206

Pertanyaannya adalah jawabannya. :)

bool isEnum = theObject is Enum;

13
Suka! Dan bahkan lebih dekat dengan pertanyaan: if (theObject is Enum) {...}
Peter Lillevold

5
Ini bahkan bukan untuk tujuan saya datang ke sini dan saya memberi Anda satu poin. Ini sangat ... bersih ... <sniff>, ini pria yang cantik TT
Lukas

12
/ * Test * / if (anObject is / * an * / Enum) {}
Tom Fobear

bool isEnum = theObject.GetType (). IsEnum; lebih baik, apakah Enum tidak selalu membalas benar
chris hu

69

Jika Anda memiliki Type, gunakan Type.IsEnumproperti, misalnya:

bool isEnum = theObject.GetType().IsEnum;

2
Ini berhasil untuk saya. Saya tidak tahu bagaimana membuat jawaban yang diterima berfungsi di VB.NET.
Shea Daniels

4
Saya sebenarnya perlu tahu cara memeriksa Typemakhluk tipe Enum. +1
Nathan


1

Untuk parameter tipe generik, parameter dapat dibatasi daripada diuji:

where T : Enum
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.