Clear        


                
                    using _09_Inheritance.Demos.Elektronik.Models;
using System.Globalization;

namespace _09_Inheritance.Demos.Elektronik
{
    public class ElektronikDemo
    {
        public static void Calistir()
        {
            #region Bilgisayar
            // Bilgisayar tipinde bilgisayar referans değişkeni tanımlanması ve bu değişken üzerinden Bilgisayar objesi oluşturulması,
            // genelde veri taşıyan modellerde referans değişkeninin tipi base tip (ElektronikEsya) değil sub tip (Bilgisayar) kullanılır
            Bilgisayar bilgisayar = new Bilgisayar() // obje oluşturulurken özelliklerinin atanması
            {
                Marka = "ASUS", // ElektronikEsya class'ından miras alınan özellik
                Model = "ROG", // ElektronikEsya class'ından miras alınan özellik
                SeriNo = "AR123", // ElektronikEsya class'ından miras alınan özellik

                UretimTarihi = DateTime.Parse("16.03.2023 12:44:55", new CultureInfo("tr-TR")), // ElektronikEsya class'ından miras alınan özellik
                //UretimTarihi = new DateTime(2023, 3, 16, 12, 44, 55) de yazılabilir, 

                BilgisayarTipi = BilgisayarTipi.Dizüstü, // Bilgisayar class'ı özelliği
                IslemciTipi = IslemciTipi.i7, // Bilgisayar class'ı özelliği
                Hafiza = 16, // Bilgisayar class'ı özelliği
                EkranBoyutu = 27, // Bilgisayar class'ı özelliği
                SuSogutmaliMi = true // Bilgisayar class'ı özelliği
            };

            // bilgisayarın ekrana yazdırılması
            string bilgisayarBilgisi = $"Bilgisayar:\n" +
                $"Marka: {bilgisayar.Marka}\n" +
                $"Model: {bilgisayar.Model}\n" +
                $"Seri No: {bilgisayar.SeriNo}\n" +
                $"Üretim Tarihi: {bilgisayar.UretimTarihi.ToString("dd.MM.yyyy HH:mm:ss")}\n" +
                $"Bilgisayar Tipi: {bilgisayar.BilgisayarTipi} ({(int)bilgisayar.BilgisayarTipi})\n" +
                $"İşlemci Tipi: {bilgisayar.IslemciTipi} ({(int)bilgisayar.IslemciTipi})\n" +
                $"Hafıza: {bilgisayar.Hafiza} GB\n" +
                $"Ekran Boyutu: {bilgisayar.EkranBoyutu} inç\n" +
                $"Su Soğutma: {bilgisayar.SuSogutmali} ({bilgisayar.SuSogutmaliMi})\n" +
                $"Kategori: {bilgisayar.Kategori}";

            Console.WriteLine(bilgisayarBilgisi);

            Console.WriteLine();
            #endregion



            #region Ev Sinema Sistemi
            // EvSinemaSistemi tipinde evSinemaSistemi referans değişkeni tanımlanması ve bu değişken üzerinden EvSinemaSistemi objesi oluşturulması,
            // genelde veri taşıyan modellerde referans değişkeninin tipi base tip (ElektronikEsya) değil sub tip (EvSinemaSistemi) kullanılır
            EvSinemaSistemi evSinemaSistemi = new EvSinemaSistemi(); // önce obje oluşturulması sonra obje özelliklerinin atanması

            evSinemaSistemi.Marka = "Bose"; // ElektronikEsya class'ından miras alınan özellik
            evSinemaSistemi.Model = "Lifestyle 650"; // ElektronikEsya class'ından miras alınan özellik
            evSinemaSistemi.SeriNo = "BL650"; // ElektronikEsya class'ından miras alınan özellik
            evSinemaSistemi.UretimTarihi = DateTime.Parse("27.01.2023 16:54:06", new CultureInfo("tr-TR")); // ElektronikEsya class'ından miras alınan özellik

            evSinemaSistemi.HoparlorSayisi = 6; // EvSinemaSistemi class'ı özelliği
            evSinemaSistemi.Guc = 180; // EvSinemaSistemi class'ı özelliği

            // ev sinema sisteminin ekrana yazdırılması
            string evSinemaSistemiBilgisi = $"Ev Sinema Sistemi:\n" +
                $"Marka: {evSinemaSistemi.Marka}\n" +
                $"Model: {evSinemaSistemi.Model}\n" +
                $"Seri No: {evSinemaSistemi.SeriNo}\n" +
                $"Üretim Tarihi: {evSinemaSistemi.UretimTarihi.ToString("dd.MM.yyyy HH:mm:ss")}\n" +
                $"Hoparlör Sayısı: {evSinemaSistemi.HoparlorSayisi} adet\n" +
                $"Güç: {evSinemaSistemi.Guc} Watt";

            Console.WriteLine(evSinemaSistemiBilgisi);
            #endregion
        }
    }
}