Lazy constructors

public class SingleCar
{
public SingleCar()
{
Console.WriteLine("constructed!");
}
public void test()
{
Console.WriteLine("used!");
}
}



private Lazy<SingleCar> mycar = new Lazy<SingleCar>();
public SingleCar GetAllTracks()
{
return mycar.Value;
}
private Lazy<SingleCar> mycary = new Lazy<SingleCar>(() =>
{
Console.WriteLine("Creating SingleCar object!");
return new SingleCar();
});

public static int Main()
{
SingleCar a = GetAllTracks();
SingleCar b = new SingleCar();
Lazy<SingleCar> c = mycary;

a.test();
b.test();
c.Value.test();
}