title: PowerShell string default parameter value does not work as expected
body: <pre><code>#Requires -Version 2.0
  
  [CmdletBinding()]
  Param(
    [Parameter()] [string] $MyParam = $null
  )
  
  if($MyParam -eq $null) {
    Write-Host 'works'
  } else {
    Write-Host 'does not work'
  }
  </code></pre>
  
  <p>Outputs "does not work" => looks like strings are converted from null to empty string implicitly? Why? And how to test if a string is empty or really $null? This should be two different values!</p>