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

    +133.9

    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
    switch (aDataType.FullName)
    			{
    				case "System.SByte":	
    				case "System.Int16":	
    				case "System.Int32":	
    				case "System.Int64":	
    				case "System.Single":	
    				case "System.Double":	
    				case "System.Decimal":	
    				case "System.DateTime":	
    					_IsNumeric = true;
    					break;
    				case "System.String":   
    					_IsNumeric = false;
    					break;	
    				default:
    					throw new ArgumentException("Not supported field data type: " + 
    						aDataType.FullName, "aDataType");
    			}

    Не надо хардкодить названия типов

    Запостил: sanya_fs, 26 Августа 2009

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

    • Игнорирование беззнаковых типов выдаёт бывшего джависта.
      Ответить
    • А побыстрее эту функцию сделать можно, что-бы определять тип на _IsNumeric и нет. А то сравнение строк - до добра не доведёт...
      Ответить
    • это блять любители свич кес такое задротство пишут
      Ответить
    • Я бы сделал
      static HashSet<Type> numericTypes = new HashSet<Type>(new Type[] { typeof(sbyte), typeof(short), typeof(int), typeof(long), typeof(float), typeof(double), typeof(decimal), typeof(DateTime) });
      Ответить
    • Код, конечно, идиотский.
      А вообще, в C# иногда не хватает switch'а по типу. Было бы здорово, если бы в язык добавили паттерн-матчинг, как в F# и Nemerle.
      Ответить

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