Can I make a function in C# take an optional parameter or do I need to overload it?
<p>I have the following in an interface:</p>

<pre><code>string GetTopic(string rk);
</code></pre>

<p>and this function:</p>

<pre><code>public string GetTopic(string rk)
{
    return string.Format("{0}.{1}.{2}",
        rk.Substring(0, 2).TrimStart('0'),
        rk.Substring(2, 2).TrimStart('0').PadLeft(1, '0'),
        rk.Substring(4, 2).TrimStart('0').PadLeft(1, '0'));
}
</code></pre>

<p>I would like to add an optional second parameter, enabling the function to be called like this:</p>

<pre><code>var a = GetTopic("010101") 
</code></pre>

<p>or</p>

<pre><code>var b = GetTopic("010101","test")
</code></pre>

<p>In the first case I would like to get the output "1.1.1" and in the second case the output "1.1.1 - test". </p>

<p>Is this possible or do I need to make two functions and have one overload the other one? How can I specify the optional second parameter in my interface?</p>
