Resmen öğretmenliği sanat olarak icra ediyorsunuz hocam. Geç keşfettim sayfayı ama iyi ki keşfettim. Her zaman böyle hocalara karşı çok büyük saygım olmuştur çok rahat çok profesyonel 👏
@esmaicer8452 жыл бұрын
keşke üniversitedeki akademisyenler de şu videoları izlese.
@Algotrader04 Жыл бұрын
izleselerde bir iki bişey katsqalar kendilerine
@tugba7777 Жыл бұрын
hocam sizin gibi hocam olsa üniversiteden çıkmam o derece bağladı beni anlatımınız ve cidden aşırı açık net bir anlatım herkes anlayabilir bu çok değerli bir şey :) ve sizi pazar keşfettim bugün salı ve keşfettiğim günden beri sadece sizden çalışıyorum ve anlayarak tane tane ilerliyorum birkaç günde 2 senede öğrenemediğim şeyleri öğrettiniz büyük değersiniz lütfen vazgeçmeden ister c sharp ister java script vs birçok eğitiminize ve anlatımınıza bizlerin ihtiyacı var bizi yalnız bırakmayın hocam sevgilerr ❤
@fbetasoft3 жыл бұрын
Her anlatacağınız bir zor konuya başlamadan ‘bunu anlamayabilirsiniz belki’ demeniz bile ben gibi sıfırdan başlayan birini acayip rahatlatıyor. Eğer öyle demeseniz büyük ihtimal benim aklım basmıyor diyip pes edebilirdim ama siz böyle söyleyince haa anlamamam normalmiş diyip rahat kafayla izliyorum. Sonrasında dediğiniz gibi anlıyorum her şeyi. Çok süper anlatıyorsunuz. Bazı önemli yerleri de üstüne basa basa tekrar etmeniz çok yararlı oluyor. Çünkü neyin çok önemli neyin az önemli olduğunu bilmiyoruz. Kısacası böyle devam 👏
@yusufscad64292 жыл бұрын
Bir şeyleri bu kadar güzel anlatan sayılı kişilerden birisiniz Allah da sizden razı olsun Hocam teşekkürler
@ayvazyasin8175Ай бұрын
Emeğine sağlık hocam katkınız çok büyük.
@hunterwaxsel4 жыл бұрын
her dersinizde bir aydınlanma yaşıyorum :)
@erdemeder46133 жыл бұрын
Videolar birer altın değerinde, çok anlaşılır bir video serisi olmuş elinize sesinize sağlık
@holdbar6092 жыл бұрын
Hocam yaklaşık iki yıl boyunca Unity ile ilgilendim. Boşa kürek çekiyormuşum gerçekten. Ne temel C# oturmuş ne de OOP bilgim var kalkmış oyun yapmaya çalışıyorum. Bir de MMORPG yapmayı düşünüyordum tövbe ya rabbim :D Bu kadar derinlemesine anlatarak gözümüzü açtığınız için teşekkür ederim. Şimdi nerede nasıl davranmam gerektiğini ufaktan da olsa anlamaya başladım.
@5ura_9999 ай бұрын
Classların deep copy ile çoğaltılmasını tam anlamadım, kalıtımda umarım daha iyi anlarım. Çünki çok iyi anlatıyorsunuz, teşekkür ederiz hocam. Emeğinize sağlık. Böyle bir eğotimden faydalandığım için çok şanslı hiss ediyorum🌷❤
@mucahidcanbey2 жыл бұрын
Aklımdaki her soruyu okuyorsunuz hocam 🙏
@muratceniklioglu19682 жыл бұрын
Çok güzel anlatım.
10 ай бұрын
Eyvallah hocam, ağzınıza sağlık, teşekkürler.👍👍👍
@oguzylmaz64123 жыл бұрын
Hocam bu konuyu üniversitede algoritma dersinde anlamazdım sayenizde öğrendiğimi hissettim öyle diyeyim bu kadar kolaymış meğer çok teşekkürlerler :)
@mehmetacar51 Жыл бұрын
Güzel eğitimler için teşekkürler.
@husokanus2 жыл бұрын
Ağzınıza sağlık hocam. Emeğiniz için çok teşekkürler
@cuneytdonmez2149 ай бұрын
Emek çok büyük..Efsane anlatım
@mfakkaya4 жыл бұрын
Siyah arka plan çok daha anlaşılır olmuş teşekkürler. Bazı yazılar hâlâ çok küçük hocam şahsen zorlanıyorum.
4 жыл бұрын
Tamam, sonraki dersler de biraz daha büyütürüm :)
@nurisargin2 жыл бұрын
Çok faydalı bilgiler, emeğinize sağlık hocam.
@ozelharekat5719 ай бұрын
emeginize saglik
@necipakgz Жыл бұрын
Deep copy = Koyunu kopyaladığınızda, birini kebap yapınca diğerinin canı yanmıyorsa bu deep copydir 🤣 Sınavda vs çıkınca yazın gidiş yolundan 100 alırsınız 😂 güzel örnek.
@emirarslanca93644 ай бұрын
Ders değil bu. Bu bir sanat.
@hikmetfazila62992 жыл бұрын
emeğinize sağlık hocam, teşekkürler
@kenanyasar1066 Жыл бұрын
Allah razı olsun.
@EmreCanTERKAN6 ай бұрын
Tekrara devam :)
@YellowedLeaves65 Жыл бұрын
Ders böyle anlatılır!
@NcKrkllkc Жыл бұрын
Hocam MemberwiseClone() işleminin sonucunda yaptığımız deep copy tam olarak deep copy olmuyormuş. Biraz araştırma sonucunda şöyle bir bilgiye ulaştım. Eğer ki iki nesne referansı arasında MemberwiseClone işlemi uygulanıyorsa, değer türündeki değerler (staticler hariç) bit bit kopyalanıyor, yani deep copy gerçekleşiyor. Fakat referans türündeki değerler için bu söz konusu değil. Örneğin sınıfın içerisinde bir dizi olsun. MemberwiseClone ile yaptığınız kopyalama işlemi sonucunda değer türlü verilerinizin bir kopyası, kopyalanan nesne referansından bağımsız bir şekilde yeni referansa aktarılıyor ama bu durum dizi için geçerli olmuyor. İki nesne referansı da aynı diziyi referans göstermeye devam ediyor. Dizi üzerindeki değişikliği hangi nesne referansı üzerinden yaparsanız yapın aynı diziyi işaret ettiği için değişiklikler ortak oluyor. ---------------------------------------------- class Deneme { public int sayi; public int[] sayilar = {1,2}; public Deneme MemwisClone() { return (Deneme)this.MemberwiseClone(); } } Deneme d1 = new Deneme(); Deneme d2 = d1.MemwisClone(); d1.sayi = 5; // Diğer referanstan bağımsız değer ataması yapılır. d2.sayi = 10; // Diğer referanstan bağımsız değer ataması yapılır. Console.WriteLine(d2.sayi); // Çıktısı : 10 Console.WriteLine(d1.sayi); // Çıktısı : 5 d1.sayilar[0] = 10; //d1 üzerindeki dizi elemanı değişikliğinden, d2 deki dizi de etkileniyor. d2.sayilar[1] = 20; //d2 üzerindeki dizi elemanı değişikliğinden, d1 deki dizi de etkileniyor. Console.WriteLine($"{d1.sayilar[0]} - {d1.sayilar[1]}"); // Çıktısı : 10 - 20 Console.WriteLine($"{d2.sayilar[0]} - {d1.sayilar[1]}"); // Çıktısı : 10 - 20 ---------------------------------------------- Nesne içerisindeki üyeler tamamen birbirinden bağımsız bir şekilde kopyalansın istiyorsanız ya kendi copy metodunuzu yazacaksınız, ya da serileştirme yapısını kullanacaksınız. En azından internette bulduğum çözümler bunlardı. Aşağıda kendi copy metodumu oluşturdum. Sıfırdan nesne oluşturmak yerine, kopyalama sırasında kopyalandığı nesnenin özellikleriyle yaşam döngüsüne başlamasını istedim. O yüzden bu şekilde kodladım. Umarım ne yapmak istediğimi anlatabilmişimdir :) ---------------------------------------------- class Deneme { public int sayi; public int[] sayilar; public Deneme(int sayi = default(int), int[] sayilar = default(int[])) { this.sayi = sayi; this.sayilar = sayilar ?? new int[]{1,2}; } public Deneme Copy() { return new Deneme(this.sayi, this.sayilar.ToArray()); } } Deneme d1 = new Deneme(); Deneme d2 = d1.Copy(); Console.WriteLine(@$"---------- d1 ve d2 ilk oluşturmadan sonra ---------- d1 sayi : {d1.sayi} d2 sayi : {d2.sayi}"); d1.sayi = 5; Console.WriteLine(@$"---------- d1 sayi değişkeninin değeri değiştirildikkten sonra ---------- d1 sayi : {d1.sayi} d2 sayi : {d2.sayi}"); Console.WriteLine("Sadece d1'in sayi değeri değişti. Birbirlerinden bağımsızlar. "); Console.WriteLine(@$"-------------d1 ve d2 nesnelerinde sayilar dizisi varsayılan değerde---------- d1 sayilar[0] : {d1.sayilar[0]} - d1 sayilar[1] : {d1.sayilar[1]} d2 sayilar[0] : {d2.sayilar[0]} - d2 sayilar[1] : {d2.sayilar[1]}"); d1.sayilar[0] = 10; d1.sayilar[1] = 20; Console.WriteLine(@$"---------- d1 sayilar dizisi değerleri değiştirildikten sonra ---------- d1 sayilar[0] : {d1.sayilar[0]} - d1 sayilar[1] : {d1.sayilar[1]} d2 sayilar[0] : {d2.sayilar[0]} - d2 sayilar[1] : {d2.sayilar[1]}"); Console.WriteLine("Sadece d1'in sayilar dizisindeki değerleri değişti. Birbirlerinden bağımsızlar. "); Çıktısı: ---------- d1 ve d2 ilk oluşturmadan sonra ---------- d1 sayi : 0 d2 sayi : 0 ---------- d1 sayi değişkeninin değeri değiştirildikkten sonra ---------- d1 sayi : 5 d2 sayi : 0 Sadece d1'in sayi değeri değişti. Birbirlerinden bağımsızlar. -------------d1 ve d2 nesnelerinde sayilar dizisi varsayılan değerde---------- d1 sayilar[0] : 1 - d1 sayilar[1] : 2 d2 sayilar[0] : 1 - d2 sayilar[1] : 2 ---------- d1 sayilar dizisi değerleri değiştirildikten sonra ---------- d1 sayilar[0] : 10 - d1 sayilar[1] : 20 d2 sayilar[0] : 1 - d2 sayilar[1] : 2 Sadece d1'in sayilar dizisindeki değerleri değişti. Birbirlerinden bağımsızlar.
@emreesencomtr_9 ай бұрын
Allah razı olsun Hocam
@osmansahin9526 Жыл бұрын
Hocam Hilmi diye arkadaşınız var sanırım. Ona da laf arasında keçi demiş oldunuz gibi hissettim :D ( derin kopyalama keçi dolly örneğinde). Eğer varsa Hilmi kardeşimize de selamlar :D
@batuhan-birinci21152 жыл бұрын
Süperdi hocam emeğinize sağlık..
@batuhansevgil4 жыл бұрын
Hocam sayenizde yaptığım şeyleri nasıl yaptığımı ve olayın mantığını anlıyorum bu sayede daha çok OOP konusunda güçleniyorum
@mirelemapps73074 ай бұрын
Nasil uye olabilirim butonu bulamiyorum
@batuhansevgil4 ай бұрын
@@mirelemapps7307 farklı ülkedeysen vpn ile türkiyeye bağlanıp deneeyebilirsin.
@muhammedzayif31274 жыл бұрын
Gene harika örnekler. Devam
@tanerustun2402 жыл бұрын
hocam 16:20 deki m1 referansının oluşturduğu ilk objede atama yapıldıktan sonra artık o objeyi herhangibir Referans türü referans etmediğinden garbage collector tarafından temizleniyor mu yoksa ?
@HakanSamir Жыл бұрын
Teşekkürler
@____han____2 жыл бұрын
Hocam dakika 29'da anlattıgınız clone işlemi yerine klasik şekilde new Myclass() desek aynı sekilde yeni bir myclass türünden bir nesne yaratılmaz mıydı yani; " 34) MyClass m3 = m1.Clone(); " bunun yerine " 34) MyClass m3 = new MyClass " bu ikisi arasında fark var mıdır? hocam soruyu yazarken cevap aklıma geldi:) aslında eğer bu örnekte m1 nesnesinde bir değişiklik yapmadıysak evet iki işlemde aynı oluyor temel bir myclass türünden nesne oluşturuyor ama biz m1'de değişiklik yaptıysak ve bunları yeni bir nesneye hazır hemen geçirmek istiyorsak klonlamak isteriz.
2 жыл бұрын
Soruda haklı, cevapta harikasın :)
@____han____2 жыл бұрын
@ teşekkürler hocam😄
@rockymarciano762311 ай бұрын
Shallow'un ingilizce karşılığı yüzeysel,sığ anlamına gelmektedir. Bu da konuya dair fikir verebilir. Sığ ve yüzeysel bir kopyalamadır shallow copy değer türetilmesini sağlamaz.
@hj14333 жыл бұрын
28:20, hocam aslında her nesne object türünden değil mi? O zaman niye object türündeki "this.MemberwiseClone" yapısını MyClass türüne dönüştürdük. evet anlıyorum elimideki sınıfın türü object değil, bilakis MyClass. Esas soru ise burada, niye object değil? sonuçta biz nesne üzerinde çalışmıyor muyuz?
3 жыл бұрын
Polimorfizm konusu gelsin konuşacağız :) Bu sorunun cevabı orada...
@nursedaozcan58542 жыл бұрын
teşekkürler hocam . road map bekliyoruz
@Merve_Esen Жыл бұрын
Teşekkürler hocam
@ugursesen76292 жыл бұрын
en çok hatalar nesne kopyalamada yapılıyor, nelerle karşılaştım nelerle, çok dikkat edilmesi lazım.
@burcutas1647 Жыл бұрын
Bu bir destek mesajıdır. Nesne Kopyalama Davranışları | Shallow Copy | Deep Copy
@mertar75942 ай бұрын
hocam oop sonunda proje yapıyormusunuz
@gskirmizi3001 Жыл бұрын
dün gece arka arkaya 8 video izledim rüyam stack ile heap rüuyama girdi
@hj14333 жыл бұрын
Kıymetli hocam, eskisi gibi her gün düzenlice video atmaya ne zaman başlayabilir hale geleceksiniz acaba?
3 жыл бұрын
Yaklaşık 3 aylık yapmış olduğum her gün video çalışması beni inanılmaz yordu ve işleri sıkıştırdı. Yakın zamanda işlerimi yoluna koymuş olacağım lakin artık her gün değil, haftanın belirli günleri yayın yapmayı düşünüyorum.
@hj14333 жыл бұрын
@ Hmm. Peki hocam. Allah kolaylıl versin. Bu süreçte sizin temel prosüdürel ve nesne tabanlı proglamalamada henüz videosunu yüklemediğiniz ama benim mutlaka öğrenmem gereken bir konu olduğunda bana hangi kanalı izlememi tavsiye edersiniz? Birçok kanal var; lakin ben, izlemek istediğim öğretim görevlisinde iki şeyin olmazsa olmaz olduğunu gördüm. İlki anlatacağı bilgiyi hazmetmiş olması. İkincisi bunu düzgünce ve anlaşılabilir bir üslupla aktarabiliyor/ öğretebiliyor olması.
3 жыл бұрын
@@hj1433 Kanal takip etmiyorum. Araştırmanı öneririm. Yakında C# ve OOP eğitimlerinin çekimlerine başlayacağım ve bu ikisini özellikle zamanla noktalayacağım.
@hj14333 жыл бұрын
@ Çok sağolun hocam. C# eğitiminin 500 küsür videoda biteceğini belirttiniz. Peki OOP tamamı yaklaşık olarak hangi videoda bitecek acaba?
@yazilimciyizBiz3 жыл бұрын
08.01.2022 tarihinde izledim
@viabelli82532 жыл бұрын
Hocam çok güzel bir video olmuş ama benim aklıma takılan küçük bir soru var. Biz Clone metodunda this.MemberwiseClone() diyerek return etmek yerine direkt; return this; yapsak olur muydu?
Жыл бұрын
Hayır, this o anki nesneyi döndürür. Klonunu değil.
@recepcakir4866 Жыл бұрын
'MemberwiseClone' methodunun açıklamasında 'Creates a shallow copy' ifadesi yer alıyor ama siz deep copy yorum satırı yazdınız yanına, burada bir yanlışlık yapmış olabilir misiniz?
Жыл бұрын
Olabilir tabi. İlk fırsatta göz atacağım.
@talhagozutok11 күн бұрын
Hayır, bir yanlışlık yok fakat eksik var. Videoda anlatılan tam olarak deep copy değil. Deep copy olması için nesnenin birebir kopyasının oluşturulması gerekiyor. Yani, nesnenin field ve property'lerinin de birebir kopyalanması gerekiyor. Videoda eksik olan field ve propertylerin referans tipli olabileceğinden onların da kopyalanmasına değinilmemesi. Düşünüyorum ki Gencay hocamız, videoda bahsettiği ve öğrettiği nesne kopyalama terimlerini kavradıktan sonra, ihtiyaç duyduğunuzda bu konuyu kavramlar üzerinden araştırarak daha derinlemesine öğrenebileceğinizi düşündüğü için bu detaya değinmemiş olabilir. MemberwiseClone evet bir shallow copy oluşturur. Oluşan bu shallow copy'i dikkat edersek Clone methodu içinde return ile dönüyoruz. MemberwiseClone, RAM'de yeni bir nesne oluşturur. Oluşan bu yeni nesneyi videodaki gibi m3 referansı ile gösterirsek bunun bütününe deep copy diyebiliriz. Bu güzel soru için teşekkür ederim. --- Kaynak: learn.microsoft.com/en-us/dotnet/api/system.object.memberwiseclone#remarks If a field is a value type, a bit-by-bit copy of the field is performed. If a field is a reference type, the reference is copied but the referred object is not; therefore, the original object and its clone refer to the same object.
@kemalsen962 жыл бұрын
Hocam Hilmi adını çok kullanıyorsunuz. Hilmiyle alakalı var mı bir hikayeniz? :D
2 жыл бұрын
Dayım olur kendileri :)
@elgizhasanzada3 жыл бұрын
The best explanation i have ever seen so far >_
@crofsencrof8415 Жыл бұрын
Kıymetli hocam, MemberwiseClone metodu shallow copy yapmıyor mu ? m3'teki değişiklik, m1 ve m2 referanslarınıda etkiliyor.
Жыл бұрын
Örnek kod?
@crofsencrof8415 Жыл бұрын
@ Çok özür diliyorum hocam hata benden kaynaklı. Videodaki örneğinizi denemek için class içerisinde array dizisi oluşturdum. İlk nesne üzerinden bu array dizisine ulaşıp bir kaç değer ekledim. Sonra clone işlemi yaptıktan sonra cloneladığım nesne içindeki array dizisinede aynı index numaraları üzerinden eleman eklemesi yaptım. Eee tabi doğal olarak ilk nesnedeki array dizisinin elemanlarıda değişti çünkü heapteki array dizisi clonelanmadı aynı duruyor yani iki nesne içerisindeki array dizisi aynı kalıyor. Nesne içerisine değer türü değişkenler ekleyip onlar üzerinden bi deneme yaptığımda nesnenin kopyalandığını gördüm :). MemberwiseClone'nun summary açıklamasındaki "This is always a shallow copy of the instance" açıklaması kafamı karıştırdı en başta. Nesne kopyalama söz konusu fakat summary açıklamasına görede tam bir Deep Copy yapmıyor sanırım hocam bu metot.
@mirelemapps73074 ай бұрын
Nasil uye olabilirim butonu bulamiyorum
@industriousBurak4 жыл бұрын
Hocam C# a devam edebilir misiniz
@QowqarAsgerovАй бұрын
👏👏👏👏💫💫
@ahmetcam2346 Жыл бұрын
@UBAzerbaijan2 жыл бұрын
Hocam siyah ekrana geçmişsiniz )
@erenxewneztuten64352 жыл бұрын
Shallow Copy matematikteki fonksiyonların özelliğini birebir kopyalamış xD. Nerde kullanacağız dediğimiz matematik özelliğinin nerede kullanılacağını öğrendik.
@codiore2 жыл бұрын
Hocam as operatörü ile de yapabilirdik. Hemen sizin ders notlarından aklıma geldi :) Tabi performans konusunda bir şey bilmiyorum :) Çok teşekkürler... return this.MemberwiseClone() as MyClass;
@irem8414 ай бұрын
ctrl x + ctrl v= shallow copy ctrl c + ctrl v = deep copy yaksamlar...
@fatihkesik47313 жыл бұрын
Level atlamış gibi hissediyorum.
@max_snowtrАй бұрын
Hilmi
@Batuhansevdirir Жыл бұрын
Destek +
@oguz2312 жыл бұрын
Hilmi dayıya ayıp oldu sanki hocam
@aciltedarikdeposu43262 жыл бұрын
bu videoya kadar en sevdiği yeğeniydi :D:D:D
@musayilmaz48153 жыл бұрын
Doli mi Hilmi mi 😂
3 жыл бұрын
birini kesip kebap yapmak :D
@burakkaracakaya6763 Жыл бұрын
this.MemberwiseClone ile new MyClass mı yapmış olduk yani Gencay hocam? Sonuçta o method ile yeni bir nesne türetilmiş oldu, değerleri her ne kadar m1 ile aynı olsa da..