C# OOP ile Nesne Oluşturmak İstiyorum

MerryGo

Yeni üye
19 May 2021
48
15
C#:
    class Program
    {
        static void Main(string[] args)
        {
            Film f1 = new Film()
            {
                isim = "cehennem melekleri",
                saat = "12.00",
                salonNo = 2
            };
            Film f2 = f1.With(4);
            

            Console.WriteLine(f2.salonNo);

        }
    }

    class Film
    {
        public string isim { get; set; }
        public string saat { get; init; }
        public int salonNo { get; init; }

        public Film With(int _salonNO)
        {
            return new Film()
            {
                isim = this.isim,
                saat = this.saat,
                salonNo = _salonNO

            };
        }
    }

Salt okunur oluşturduğum bu nesnenin bir property'sinin değerinde bir değişiklik yapıp yeni bir nesne oluşturmak isityorum. Nesneyi oluştururken property değerlerini tek tek yazmak istemedim, çok sayıda property'e sahip bir classtan nesne oluşturuken sadece bir değeri değiştirmek için bunu yapmak mantıklı olmaz sanırım. Bunun için class içerisinde bir With metodu oluşturdum ama her property için farklı bir with metodu oluşturmam gerekecek. Class içersinden 25 tane property olduğunu varsayalım, hepsi için ayrı bir metod oluşturmak saçmalık olur. Aklıma gelen With metodunun aldığı parametlereleri default yapmak ama bunu beceremedim sizin bir fikriniz varmı acaba?


Not: Bu işlemi class yerine record kullanarak rahatlıkla yapabilirim ama classla yapmak istedi canım..
 

N S

Uzman üye
19 Haz 2013
1,139
7
208
Film classının constructorına overload yap salonNo parametresi istesin overload methodu Film film2= new Film(2)
şeklinde yap gitsin.
oop den önce daha temele inmeni tavsiye ediyorum auto mapper lık bir durum yok kaldı ki automapper bana kalırsa biraz hantal kendi hlper classını yazıp T tipinde obje verip typeof().getproperties() ile propertyleri dönüp dilediğini yaptırtısın
 

MerryGo

Yeni üye
19 May 2021
48
15
Film classının constructorına overload yap salonNo parametresi istesin overload methodu Film film2= new Film(2)
şeklinde yap gitsin.
oop den önce daha temele inmeni tavsiye ediyorum auto mapper lık bir durum yok kaldı ki automapper bana kalırsa biraz hantal kendi hlper classını yazıp T tipinde obje verip typeof().getproperties() ile propertyleri dönüp dilediğini yaptırtısın
bi örnek yazarmısınız tam anlayamadım
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.