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

    +136

    1. 1
    var defaultMapping = (mappings.ContainsKey((Int32?)null)) ? mappings[(Int32?)null] : null;

    Запостил: startrack, 07 Февраля 2013

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

    • При том, что Dictionary<Int32?, String> mappings
      Ответить
      • Хм. C# знаю очень плохо, но, емнип, в Dictionary не может быть null'ов в ключах, и оно тупо крашнется на ContainsKey (да и на любых операциях пытающихся засунуть\вынуть что-то по null ключу)...
        Ответить
        • >оно тупо крашнется на ContainsKey
          Это почему? Можно и от nullа хеш-код найти.
          Главное не использовать срань x.GetHashCode(), а сделать статику с проверкой на null.
          В жаба-мире всё зависит от мапы.
          >Int32?
          Ответить
          • Здесь речь идет именно о Dictionary: http://msdn.microsoft.com/ru-ru/library/kw5aaea4.aspx

            Исключения:
            ArgumentNullException - Параметр key имеет значение null.

            А вот в IDictionary написано - реализации могут изменяться в зависимости от того, допускают ли они для параметра key значение null, и всё, действительно, зависит от конкретной реализации.

            >Int32?
            Nullable<Int32>
            Ответить
    • Оно тупо крашится)
      Ответить
    • Я не успел договорить, как из зала начались раздаваться протестующие крики.
      Ответить

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