About unassigned variables
<p>Just curious, I'm not trying to solve any problem.</p>

<p>Why only local variables should be assigned?</p>

<p>In the following example:</p>

<pre><code>class Program
{
    static int a;
    static int b { get; set; }
    static void Main(string[] args)
    {
        int c;
        System.Console.WriteLine(a);
        System.Console.WriteLine(b);
        System.Console.WriteLine(c);
    }
}
</code></pre>

<p>Why <code>a</code> and <code>b</code> gives me just a warning and <code>c</code> gives me an error?</p>

<p>Addionally, why I can't just use the default value of <b>Value Type</b> and write the following code?</p>

<pre><code>        bool MyCondition = true;
        int c;
        if (MyCondition)
            c = 10;
</code></pre>

<p>Does it have anything to do with memory management?</p>
