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

    +132

    1. 1
    Удалено по просьбе автора

    Запостил: alt0, 08 Августа 2014

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

    • public void Clone(int userId, int? id)//По иерархии, идЮзера в приоритете должен быть
      {
          if(id==null) throw new ArgumentNullException("id","Куда шаблонъ дел?");
      
          using (var context = this.GetContext())
              context.CopyTemplate(userId, id.Value);
      }


      Хотя если это реализация интерфейса, то не прокатит.
      Ответить
      • зачем id в nullable обернул?
        Ответить
        • Ну, это, наклал... 0:)
          Я сначала хотел внешнюю часть не трогать, чтобы оставить для инкапсуляции, а потом резулт убрал, а про нуллаблю забыл.
          Ответить
          • Это ж как надо кодить, что бы программа в один прекрасный момент начал юзеров из нихера создавать)
            Ответить
            • > начал юзеров из нихера создавать
              Да она же просто упадёт на касте в шестой строке.
              Ответить
              • Ясен пень, я про логику вообще. То есть может случиться, что вместо шаблона придет null - говно же
                А сверху

                try
                    {
                     ....   Clone(ShittyTemplateID, ShittyID);
                    }
                    catch (InvalidOperationException)
                    {
                
                        CraeteUserWithoutTemplate(ShittyID);
                    }
                Ответить
              • Nullable<Int32> в Int32 скастуется.
                Но при implicit преобразовании может вылететь в InvalidOperationException.
                Ответить
                • > Nullable<Int32> в Int32 скастуется.
                  Даже при null'е? О_о
                  Ответить
                  • Не, при null'е оно бросит InvalidOperationException.
                    Ответить
                  • ну так когда начнет неявно кастоваться -тогда и сдохнет. Об этом и говорил Тау Кита Сигма
                    Ответить
                    • Странно, что при добавлении структуры Nullable<T>, M$ не добавил годный парс:
                      public static class NullableParse
                      {
                          public static Int32? ToInt32(this String prm)
                          {
                              Int32 result;
                              return Int32.TryParse(prm, out result)?result:(Int32?)null;
                          }
                          //....
                      }
                      Ответить
                      • nullable нинужно нужно в очень редких случаях, да и то проще свой класс описать ибо, скорее всего, понадобятся дополнительные фичи
                        Ответить
                        • Нуллаблы нужны для работы с СУБД, дабы не городить конструкций с нулом, как это было с типизированными датасетами:
                          https://connect.microsoft.com/VisualStudio/feedbackdetail/view/284009/nullable-types-for-typed-dataset

                          >да и то проще свой класс описать ибо, скорее всего, понадобятся дополнительные фичи
                          В нынешних ORM'ах, весь "свой" класс идёт в partial.
                          Ответить
            • DAL нам на некий шаблон намекает.
              Ответить

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