From 6034e0841d0a0ae29af89a7f9236612a6d87675c Mon Sep 17 00:00:00 2001 From: Jb Evain Date: Thu, 19 Jan 2012 23:04:10 +0100 Subject: [PATCH] Add TypeDefinition.GetEnumUnderlyingType extension --- ICSharpCode.Decompiler/CecilExtensions.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/ICSharpCode.Decompiler/CecilExtensions.cs b/ICSharpCode.Decompiler/CecilExtensions.cs index 89377bf55..2c1795137 100644 --- a/ICSharpCode.Decompiler/CecilExtensions.cs +++ b/ICSharpCode.Decompiler/CecilExtensions.cs @@ -215,6 +215,23 @@ namespace ICSharpCode.Decompiler return true; return IsCompilerGeneratedOrIsInCompilerGeneratedClass(member.DeclaringType); } + + public static TypeReference GetEnumUnderlyingType(this TypeDefinition type) + { + if (!type.IsEnum) + throw new ArgumentException("Type must be an enum", "type"); + + var fields = type.Fields; + + for (int i = 0; i < fields.Count; i++) + { + var field = fields[i]; + if (!field.IsStatic) + return field.FieldType; + } + + throw new NotSupportedException(); + } public static bool IsAnonymousType(this TypeReference type) {