"Ternary" operator for different method signatures
<p>I'm looking for an elegant way to choose a method signature (overloaded) and pass an argument based on a conditional.  I have an importer that will either produce the most recent file to import, or take an explicit path for the data.</p>

<p>Currently my code looks like this:</p>

<pre><code>if (string.IsNullOrEmpty(arguments.File))
{
    importer.StartImport();
}
else
{
    importer.StartImport(arguments.File);
}
</code></pre>

<p>I would like it to look like this (or conceptually similar):</p>

<pre><code>importer.StartImport(string.IsNullOrEmpty(arguments.File) ? Nothing : arguments.File);
</code></pre>

<p>The idea being that a different method signature would be called.  A few stipulations:</p>

<p>1) I will not rely on 'null' to indicate an unspecified file (i.e. anything besides null itself).<br>
2) I will not pass the arguments struct to the importer class; that violates the single responsibility principle.</p>

<p>One solution I'm aware of, is having only one StartImport() method that takes a single string, at which point that method resolves the conditional and chooses how to proceed.  I'm currently choosing to avoid this solution because it only moves the if-statement from one method to another.  I'm asking this question because:</p>

<p>1) I would like to reduce "8 lines" of code to 1.<br>
2) I'm genuinely curious if C# is capable of something like this.</p>
