• InFerNo@lemmy.ml
    link
    fedilink
    English
    arrow-up
    5
    ·
    19 hours ago

    Put more curly brackets around your if (val) true statement for 4 more lines, put elses in there for more lines even.

    • Acters@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      edit-2
      16 hours ago

      I should have created a local variable to store the result variable and return after the if statements. I just couldn’t help to make it look partially nice. My brain just doesn’t think at this high caliber of LOC optimizations.

      New optimized LOC version:

      internal static bool AreBooleansEqual(bool orig, bool val)
      {
          bool result;
          if(orig) 
          {
              if(val)
              {
                  result = false;
              }
              else
              {
                  result = true;
              }
          }
          else
          {
              if(val)
              {
                  result = true;
              }
              else
              {
                  result = false;
              }
          }
          return result;
      }
      

      My previous LOC: 12
      New LOC version: 27

      • servobobo@feddit.nl
        link
        fedilink
        English
        arrow-up
        3
        ·
        10 hours ago

        Surely we could optimize the return value with a switch statement and store the result as an integer to hide the compiler warning about our clearly correct code:

        internal static bool AreBooleansEqual(bool orig, bool val)
        {
            int result;
            if(orig) 
            {
                if(val)
                {
                    result = 0;
                }
                else
                {
                    result = 1;
                }
            }
            else
            {
                if(val)
                {
                    result = 1;
                }
                else
                {
                    result = 0;
                }
            }
            switch (result)
            {
                 case(1):
                     return true;
                 case(0):
                     return false;
                 default:
                     return AreBooleansEqual(orig, val);
            }
        }
        

        New LOC: 35

        • InFerNo@lemmy.ml
          link
          fedilink
          English
          arrow-up
          2
          ·
          8 hours ago

          Make the input variables nullable, then add checks if the values are null, then assign default values if they are, otherwise continue with the passed values.