1 using System; 2 using System.Collections.Generic; 3 using System.Collections; 4 5 namespace Lextm.SharpSnmpLib.Mib 6 { 7 public class DisplayHint 8 { 9 private enum NumType { 10 dec, 11 hex, 12 oct, 13 bin, 14 str 15 } 16 17 private string _str; 18 private NumType _type; 19 private int _decimalPoints = 0; 20 DisplayHint(string str)21 public DisplayHint(string str) 22 { 23 _str = str; 24 if (str.StartsWith("d")) 25 { 26 _type = NumType.dec; 27 if (str.StartsWith("d-")) 28 { 29 _decimalPoints = Convert.ToInt32(str.Substring(2)); 30 } 31 } 32 else if (str.StartsWith("o")) 33 { 34 _type = NumType.oct; 35 } 36 else if (str.StartsWith("h")) 37 { 38 _type = NumType.hex; 39 } 40 else if (str.StartsWith("b")) 41 { 42 _type = NumType.bin; 43 } 44 else 45 { 46 _type = NumType.str; 47 foreach (char c in str) 48 { 49 50 } 51 } 52 53 } 54 ToString()55 public override string ToString() 56 { 57 return _str; 58 } 59 Decode(int i)60 internal object Decode(int i) 61 { 62 switch (_type) 63 { 64 case NumType.dec: 65 if (_decimalPoints == 0) 66 { 67 return i; 68 } 69 else 70 { 71 return i / Math.Pow(10.0, _decimalPoints); 72 } 73 case NumType.hex: 74 return System.Convert.ToString(i, 16); 75 case NumType.oct: 76 return System.Convert.ToString(i, 8); 77 case NumType.bin: 78 return System.Convert.ToString(i, 2); 79 default: 80 return null; 81 } 82 } 83 } 84 } 85