title: Default parameter for CancellationToken
body: <p>I have some async code that I would like to add a <code>CancellationToken</code> to. However, there are many implementations where this is not needed so I would like to have a default parameter - perhaps <code>CancellationToken.None</code>. However,</p>
  <pre class="lang-cs prettyprint-override"><code>Task&lt;x&gt; DoStuff(...., CancellationToken ct = null)
  </code></pre>
  <p>yields</p>
  <blockquote>
  <p>A value of type '&lt;null&gt;' cannot be used as a default parameter because
  there are no standard conversions to type
  'System.Threading.CancellationToken'</p>
  </blockquote>
  <p>and</p>
  <pre class="lang-cs prettyprint-override"><code>Task&lt;x&gt; DoStuff(...., CancellationToken ct = CancellationToken.None)
  </code></pre>
  <blockquote>
  <p>Default parameter value for 'ct' must be a compile-time constant</p>
  </blockquote>
  <p>Is there any way to have a default value for <code>CancellationToken</code>?</p>