title: C#: unpack tuple returned by method to pass it into parent constructor, or other ways to fix "ISSUE: explicit constructor call"
body: <p>Decompiler (dotPeek) output:</p>
  <pre><code>class Base {
      public Base(int d, int e, int f) {
          // logic
          Console.WriteLine (&quot;Base constructor&quot;);
      }
  }
  
  class Child : Base {
      public Child(string a, string b, string c) {
          // logic before explicit call, calculating d, e, f
  
          // ISSUE: explicit constructor call
          base.\u002Ector(d, e, f);
  
          // logic after explicit call
      }
  }
  </code></pre>
  <p>Trying to convert it to normal c# base constructor call, but can't figure out how to  unpack tuple to pass it as args to parent constructor:</p>
  <pre><code>class Base {
      public Base(int d, int e, int f) {
      // logic
          Console.WriteLine (&quot;Base constructor&quot;);
      }
  }
  
  class Child : Base {
      public Child(string a, string b, string c) : base(DoWorkBeforeBaseConstructor(a, b, c)) {
          // logic after explicit call
      }
  
      private static (int, int, int) DoWorkBeforeBaseConstructor(string a, string b, string c) {
          // logic generating response based on params
          
          // logic before explicit call
          return (1, 2, 3);
      }
  }
  </code></pre>