@@ -60,11 +60,50 @@ private static string getEnumReprString(object inst)
6060 {
6161 var obType = inst . GetType ( ) ;
6262
63+ var integralType = obType . GetEnumUnderlyingType ( ) ;
6364 var isFlags = obType . IsFlagsEnum ( ) ;
64- var intValue = Convert . ToInt32 ( inst ) ;
65- var intStr = isFlags ? "0x" + intValue . ToString ( "X4" ) : intValue . ToString ( ) ;
6665
67- var repr = $ "<{ obType . Name } .{ inst } : { intStr } >";
66+ string strValue = "" ;
67+ switch ( Type . GetTypeCode ( integralType ) )
68+ {
69+ case TypeCode . SByte :
70+ var valueSB = Convert . ToSByte ( inst ) ;
71+ strValue = isFlags ? "0x" + valueSB . ToString ( "X2" ) : valueSB . ToString ( ) ;
72+ break ;
73+ case TypeCode . Byte :
74+ var valueB = Convert . ToByte ( inst ) ;
75+ strValue = isFlags ? "0x" + valueB . ToString ( "X2" ) : valueB . ToString ( ) ;
76+ break ;
77+ case TypeCode . Int16 :
78+ var valueI16 = Convert . ToInt16 ( inst ) ;
79+ strValue = isFlags ? "0x" + valueI16 . ToString ( "X4" ) : valueI16 . ToString ( ) ;
80+ break ;
81+ case TypeCode . UInt16 :
82+ var valueUI16 = Convert . ToUInt16 ( inst ) ;
83+ strValue = isFlags ? "0x" + valueUI16 . ToString ( "X4" ) : valueUI16 . ToString ( ) ;
84+ break ;
85+ case TypeCode . Int32 :
86+ var valueI32 = Convert . ToInt32 ( inst ) ;
87+ strValue = isFlags ? "0x" + valueI32 . ToString ( "X8" ) : valueI32 . ToString ( ) ;
88+ break ;
89+ case TypeCode . UInt32 :
90+ var valueUI32 = Convert . ToUInt32 ( inst ) ;
91+ strValue = isFlags ? "0x" + valueUI32 . ToString ( "X8" ) : valueUI32 . ToString ( ) ;
92+ break ;
93+ case TypeCode . Int64 :
94+ var valueI64 = Convert . ToInt64 ( inst ) ;
95+ strValue = isFlags ? "0x" + valueI64 . ToString ( "X16" ) : valueI64 . ToString ( ) ;
96+ break ;
97+ case TypeCode . UInt64 :
98+ var valueUI64 = Convert . ToUInt64 ( inst ) ;
99+ strValue = isFlags ? "0x" + valueUI64 . ToString ( "X16" ) : valueUI64 . ToString ( ) ;
100+ break ;
101+ default :
102+ break ;
103+ }
104+
105+
106+ var repr = $ "<{ obType . Name } .{ inst } : { strValue } >";
68107 return repr ;
69108 }
70109
0 commit comments