using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

// Example 3-21
public class InitializationTestClass
{
    public InitializationTestClass()
    {
        Console.WriteLine("Konstruktor");
    }

    static InitializationTestClass()
    {
        Console.WriteLine("Konstruktor statyczny");
    }

    public static int s1 = GetValue("Pole statyczne 1");
    public int ns1 = GetValue("Pole 1");
    public static int s2 = GetValue("Pole statyczne 2");
    public int ns2 = GetValue("Pole 2");

    private static int GetValue(string message)
    {
        Console.WriteLine(message);
        return 1;
    }

    public static void Foo()
    {
        Console.WriteLine("Metoda statyczna");
    }
}


class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Początek metody Main");
        InitializationTestClass.Foo();
        Console.WriteLine("Tworzenie obiektu nr 1");
        InitializationTestClass i = new InitializationTestClass();
        Console.WriteLine("Tworzenie obiektu nr 2");
        i = new InitializationTestClass();
    }
}
