title: How did they implement this syntax in the Massive Micro-ORM, multiple args parameters?
body: <p>Here on this page, <a href="http://www.hanselman.com/blog/HanselminutesPodcast262TheRiseOfTheMicroORMWithSamSaffronAndRobConery.aspx" rel="noreferrer">Scott Hanselman</a> shows two examples from Micro-ORMs Dapper and Massive, and the Massive-example caught my interested, because I don't see how they could implement that syntax.</p>
  
  <p>The example is as follows, where I'm going to break it over several lines instead of just one long one:</p>
  
  <pre><code>var tbl = new Products();
  var products = tbl.All(where: "CategoryID = @0 AND UnitPrice &gt; @1",
      orderBy: "ProductName", limit: 20, args: 5,20);
                                         ^----+---^
                                              |
                                              +-- this
  </code></pre>
  
  <p>How did they implement this syntax, allowing <code>args</code> to have multiple values? I'm assuming <code>params</code>-based arguments, because that's the only thing that allows for that, but I don't understand how they constructed the method to allow for that since it seems to me that all I try ends up complaining about named arguments and fixed position arguments are in the wrong order.</p>
  
  <p>I tried a test-method like this:</p>
  
  <pre><code>public static void Test(string name, int age, params object[] args)
  {
  }
  </code></pre>
  
  <p>and then using named arguments:</p>
  
  <pre><code>Test(age: 40, name: "Lasse", args: 10, 25);
  </code></pre>
  
  <p>But all I get is this:</p>
  
  <blockquote>
    <p>Named argument specifications must appear after all fixed arguments have been specified</p>
  </blockquote>
  
  <p>so obviously that is wrong. Also I can't see in the source anything that would allow for this but maybe I'm looking in the wrong place.</p>
  
  <p>What am I missing here?</p>