namespace BasicCoding;

internal class PreprocessingDirectives
{
    internal static void ConditionalCompilation()
    {
#if DEBUG
        Console.WriteLine("Zaczynamy działać...");
#endif
        DoWork();
#if DEBUG
        Console.WriteLine("Praca zakończona...");
#endif
    }

    [System.Diagnostics.Conditional("DEBUG")]
    static void ShowDebugInfo(object o)
    {
        Console.WriteLine(o);
    }

    internal static void ErrorDirective()
    {
#if NETSTANDARD
  #error .NET Standard nie jest dostępną platformą docelową dla tego pliku źródłowego.
#endif
    }

// Aby zabaczyć błąd kompilatora z listingu 31, zmień to:
#if false
//  na to:
// #if true

#line 123 "Foo.cs"
    intt x;
#endif

#pragma warning disable CS0168
    int a;

    private static void DoWork() { }

    internal static void AvoidUnusedMethodWarning() => ShowDebugInfo("");
}
