Why is my variable still "uninitialized"?
<pre><code>string foo;
try
{
    foo = "test"; // yeah, i know ...
}
catch // yeah, i know this one too :)
{
    foo = null;
}
finally
{
    Console.WriteLine(foo); // argh ... @#!
}
Console.WriteLine(foo); // but nothing to complain about here
</code></pre>

<p>Besides it's not BP (catching-routing) - but this is the best isolation I can get.<br>
But I get nice waves telling me "danger, danger - might be uninitialized".
How comes?</p>

<p><strong>Edit:</strong><br>
Please do not suggest "Simply put a <code>string foo = string.Empty;</code> at the 'declaration'". I'd like to declare it, but just do the assignment on time!</p>
