Clear        


                
                    namespace _20_DictionaryCollectionType.Demos
{
    public class IngilizceTurkceSozlukDemo
    {
        #region I) İngilizce Türkçe Sözlük Demo'yu Çalıştıran Method
        public void Calistir()
        {
            string giris, sonuc;

            Console.Write("İngilizce kelime giriniz (ç: çıkış) ");
            giris = Console.ReadLine();

            while (giris != "ç" && giris != "Ç")
            {
                sonuc = KelimeAra(giris);
                if (sonuc is null) // if (sonuc == null) da yazılabilir
                    Console.WriteLine("İngilizce kelime sözlükte bulunamadı.");
                else
                    Console.WriteLine($"\"{giris}\" İngilizce kelimesinin sözlükteki Türkçe karşılığı \"{sonuc}\".");

                Console.Write("İngilizce kelime giriniz (ç: çıkış) ");
                giris = Console.ReadLine();
            }
        }
        #endregion



        #region II) İngilizce Türkçe Sözlük Demo Alanları
        // sınıf altında referans değişkenleri üzerinden objeler default constructor'ları kullanılarak new'lenebilir
        Dictionary<string, string> sozluk = new Dictionary<string, string>()
        {
            { "book", "kitap" },
            { "movie", "film" },
            { "song", "şarkı" },
            { "game", "oyun" }
        };
        #endregion



        #region III) İngilizce Türkçe Sözlük Demo Davranışları
        /// <summary>
        /// Parametre olarak kullanıcıdan İngilizce bir kelime alan ve bu kelimeyi sözlükte büyük küçük harf duyarlı arayan method.
        /// </summary>
        /// <param name="ingilizceKelime"></param>
        /// <returns>string</returns>
        string KelimeAra(string ingilizceKelime)
        {
            if (sozluk.Keys.Contains(ingilizceKelime)) // eğer sözlüğün anahtarları içerisinde parametre olarak gönderilen kelime varsa,
                                                       // if (sozluk.ContainsKey(ingilizceKelime)) de yazılabilir
                return sozluk[ingilizceKelime]; // parametre olarak gönderilen kelimeye karşılık değeri dön
            return null; // eğer sözlüğün anahtarları içerisinde parametre olarak gönderilen kelime yoksa kelime bulunamadığından null dön
        }
        #endregion
    }
}