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

namespace CommentsAndPreprocessing
{
    class Examples23_26
    {
        public static void SingleLineComments()
        {
            // Listing 2-23
            Console.WriteLine("Powiedz");     // Ten tekst zostanie zignorowany, lecz kod
            Console.WriteLine("cokolwiek");   // z jego lewej strony będzie normalnie skompilowany. 
        }

        public static void DelimitedComments()
        {
            // Listing 2-24
            Console.WriteLine(/* Ma efekty uboczne */ GetLog());

            /* Niektórzy programiści lubią używać oddzielonych komentarzy do umieszczania
             * w kodzie programu dłuższych bloków tekstu, wyjaśniających coś wyjątkowo
             * złożonego lub dziwnego. Kolumna gwiazdek umieszczona z lewej strony
             * pełni głównie funkcję dekoracyjną; gwiazdki są tak naprawdę wymagane
             * wyłącznie podczas rozpoczynania i zakańczania komentarza.
             */

        }

        private static string GetLog()
        {
            // Wspomaga jedynie poprzedni przykład.
            return "E tam...";
        }

        public static void MultilineCommentGotchas()
        {
            // Listing 2-25
            Console.WriteLine("To zadziała"); /* Ten komentarz zawiera nie tylko 
            Console.WriteLine("A to nie");     * tekst z prawej strony, lecz także kod 
            Console.WriteLine("To też nie");  /* umieszczony z lewej, z wyjątkiem początku  
            Console.WriteLine("Ani to");       * pierwszego wiersza kodu. */
            Console.WriteLine("A to zadziała");

        }

        public static void InsignificantWhitespace()
        {
            Console.WriteLine("Testujemy");
            Console . WriteLine("Testujemy");
            Console.
                WriteLine("Testujemy")
              ;
        }
    }
}
