1. C# / Говнокод #9350

    +117

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    /// <summary>
    /// Преобразование элемента перечисления в строку
    /// </summary>			
    private String GetEnumElementString(Object e, Type t)
    {
    	string result = string.Empty;
    
    	if (t == typeof(AccessMode))
    	{
    		if ((AccessMode)e == AccessMode.CacheOnly)
    		{
    			result = LocalStrings.AccessMode_CacheOnly_RU;
    		}
    		else if ((AccessMode)e == AccessMode.ServerOnly)
    		{
    			result = LocalStrings.AccessMode_ServerOnly_RU;
    		}
    		else if ((AccessMode)e == AccessMode.ServerAndCache)
    		{
    			result = LocalStrings.AccessMode_ServerAndCache_RU;
    		}
    		else
    		{
    			throw new Exception(string.Format("Отсутствует конвертация перечисления {0} к списку строк.", e));
    		}
    	}
    	else if (t == typeof(MapImageType))
    	{
    		if ((MapImageType)e == MapImageType.Map)
    		{
    			result = LocalStrings.MapImageType_Map_RU;
    		}
    		else if ((MapImageType)e == MapImageType.Satellite)
    		{
    			result = LocalStrings.MapImageType_Sattelite_RU;
    		}
    		else if ((MapImageType)e == MapImageType.Hybrid)
    		{
    			result = LocalStrings.MapImageType_Hybrid_RU;
    		}
    		else
    		{
    			throw new Exception(string.Format("Отсутствует конвертация перечисления {0} к списку строк.", e));
    		}
    	}
    	else
    	{
    		throw new Exception(string.Format("Отсутствует конвертация перечисления {0} к списку строк.", e));
    	}
    
    	return result;
    }

    Конвертация Enum в строку. Аффтар уникален, и это лишь одно из проявлений его уникальности.
    Swith - для трусов, статические тулзы и Extension - для дураков. У нас для этого будут методы классов, между прочим класс, в который входит этот метод - UserControl.
    Кстати, поля LocalStrings - не константы, а статика:

    public static string AccessMode_CacheOnly_RU = "Только кэш"; ....

    Запостил: ICELedyanoj, 08 Февраля 2012

    Комментарии (2) RSS

    • Начал читать код дальше.

      Получение списка значений Enum для помещения в ComboBox:

      private List<String> GetEnumStrings(Type e)
      {
      List<string> oResult = new List<string>();

      if (e == typeof(AccessMode))
      {
      oResult.Add(LocalStrings.AccessMode_Cach eOnly_RU);
      oResult.Add(LocalStrings.AccessMode_Serv erOnly_RU);
      oResult.Add(LocalStrings.AccessMode_Serv erAndCache_RU);
      }
      else if (e == typeof(MapImageType))
      { .... }
      else
      {
      throw new Exception(string.Format("Отсутствует конвертация перечисления {0} к списку строк.", e.ToString()));
      }

      return oResult;
      }
      Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий