Avrei potuto proporlo come quiz, ma poi mi sono chiesto: "Perché essere sadici?" :-)
using System;
class A
{
public static int x;
static A()
{
Console.WriteLine("Initializing A");
}
}
class B: A
{
static B()
{
Console.WriteLine("Initializing B");
}
}
class Test
{
static void Main()
{
Console.WriteLine("B.x = {0}", B.x);
}
}
Veramente non riesco a spiegarmi il fatto che questo snippet stampi:
Initializing A
B.x = 0
Perché A??? Magari chiedo a Nicu e poi ve lo dico, se mi risponde :-)
Se qualcuno trova una spiegazione, varebbe la pena di postarla!