Static field initializers in c#
<p>I have following code in c#</p>

<pre><code>class Test
{
  public static int X = Y;    
  public static int Y = 3;    
}

static void Main()
{
Console.WriteLine(Test.X);
Console.WriteLine(Test.Y);
}
</code></pre>

<p>In this case I am getting 0 and 3 but in the following case I am getting 3,3 </p>

<pre><code>class Test
{
  public static int X = 3;    
  public static int Y = X;    
}

static void Main()
{
Console.WriteLine(Test.X);
Console.WriteLine(Test.Y);
}
</code></pre>

<p>why is it so?</p>
