Analiza kodu - zadanie 4
Jaka wartość zmiennej maxSpeed zostanie wyświetlona na konsoli?
public static void Main(string[] args)
{
CarSpeed speed = new CarSpeed();
speed.PrintSuperSpeed();
}
public class CarSpeed
{
public static int maxSpeed;
public CarSpeed()
{
if (maxSpeed == 0)
maxSpeed = 200;
}
static CarSpeed()
{
if (maxSpeed == 0)
maxSpeed = 300;
}
public void PrintSuperSpeed()
{
if (maxSpeed == 200)
{
maxSpeed = 500;
}
Console.WriteLine("SuperSpeed : " + maxSpeed);
Console.ReadLine();
}
}
Odpowiedź: SuperSpeed: 300
Objaśnienie
Klasa może posiadać tylko jeden konstruktor statyczny i wywoływany jest on zawsze przed pozostałymi konstruktorami, dlatego też maxSpeed przyjmie wartość 300 po stworzeniu obiektu.