NET5 | yield | yield return | yield break | IEnumerable

Поділитися
Вставка
  • Опубліковано 15 гру 2021
  • Bu videoda uzun bir süredir teknik iş görüşmelerinde karşımıza çıkan ancak pek çok kişinin neden ve nasıl kullanacağı konusunda fikri olmayan bir keyword'den bahsediyorum. yield keyword'ü yield return veya yield break şeklinde kullanılabiliyor. Bu kullanımların detaylarına videodan ulaşabilirsiniz.
    #dotnet #net5 #yield
    #yieldreturn #yieldbreak #microsoft
    Kanala Abone Olmayı Unutmayın!
    To Subscribe: bit.ly/3kvj2vw
    Github: github.com/salihcantekin
    Discord: bit.ly/33T4yzB
    Üyelik ayrıcalıkları için: / @techbuddytr
  • Наука та технологія

КОМЕНТАРІ • 26

  • @serdarymz
    @serdarymz 2 роки тому +3

    Daha önce bu konuyu farklı eğitimcilerden dinlemiştim yalnız sizden dinlemek çok verimli oluyor hocam. Teşekkürler :)

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +1

      Çok teşekkür ederim. Umarım faydalı olmuştur

  • @esrahuzmeli5473
    @esrahuzmeli5473 2 роки тому +3

    Uzun zamandır araştırmak istediğim bir konuydu. Emeğinize sağlık.

  • @WaffenVerband
    @WaffenVerband Рік тому +2

    Teşekkürler hocam mükemmel anlatıyorsunuz ve eğitimleriniz çok kaliteli

    • @TechBuddyTR
      @TechBuddyTR  Рік тому

      Çok teşekkür ederim. Umarım faydalı olur içerikler

  • @muhammedmustafavanl9463
    @muhammedmustafavanl9463 2 роки тому +4

    Salih hocam elinize sağlık like attım

  • @teknolojiuzmaniburada
    @teknolojiuzmaniburada 2 роки тому +4

    Hocam hemen söylemeliyim ki, bildirimlerde Tech Buddy kanalını görünce her yanım umutla kapanıyor. Emeğinize sağlık. Çok çok teşekkür ederim.

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +3

      Çok teşekkür ederim :-) Umarım faydalı oluyordur içerikler ve beklediğinize değiyordur.

    • @teknolojiuzmaniburada
      @teknolojiuzmaniburada 2 роки тому

      @@TechBuddyTR Tekrar selamlar hocam. Videoyu şimdi izleme imkanı buldum. Dün bildirim geldiği gibi beğenip yorum yapmıştım içinin dopdolu olacağından emin olduğum için. Dopdoludan daha öteymiş :) Bu konuyu hiç bu seviyede dinleyip öğrenememiştim şu ana kadar. Yield kullanımı hiç bilmiyordum. Ama keşke dün izleseymişim. Dün yazdığım bir kodda IEnumarable ve ICollection kullanmak istedim ama o an bilememiştim. İzleseydim tüm sorularıma cevap alacakmışım :) ICollection ve IEnumerable arasındaki farkı hala anlayamış olsam da bu video beni IEnumarable hakkında fazlasıyla aydınlattı. Çok çok teşekkür ederim. Kesinlikle içerikler çok faydalı. Hatta videolarınızı izlerken hiç bitmesin istiyorum. Acaba şimdi ne öğretecek ne tür püf noktalar verecek diye sabırsızlıkla izliyorum :) Emeğinize sağlık.
      Hala cevabını bulamadım bir kaç soru sormak istiyorum. Şayet uygunluğunuz olursa bunlarla ilgili de bir video çekebilirseniz çok mutlu olurum.
      1- IEnumarable ve ICollection arasındaki farklar nedir? Mülakatlarda Collectionlar nedir, ne işe yarar, ne tür özellikleri vardır diye soruyorlar. Cevap veremiyorum nette okuduğım makalelerden ezber dışında. Siz anlatırsanız mantığını anlamış halde cevap verip uygulamalarımda kullanabilirim.
      2- Ben genelde delay için Thread kullanırım. Siz Task kullandınız. Bu ikisi arasındaki farklar nedir? Await Async Wait kullanımları arasındaki farklar nedir? Apilerde ağırlıklı olarak kullandığımız şeyler bunlar. Ancak benim takıldığım yerler var hala. Örneğin apide bir metodu async yapınca frontend tarafında (Winforms (en çok bunu kullanıyorum) , AspNetCoreMvc) ne şekilde çağırmam gerektiğini bilmiyorum. Genelde desktop uygulamaları geliştiriyorum. Formlarda anlık değer değişimi gerektiğinde BeginInvoke(new Action(() => .......)); gibi bir kullanım yapmak zorunda kalıyorum. Bu durumda threadlerle ilgili bir çok sorun yaşıyorum. Bruteforce oluyor yazdığım kodlar.
      3-Bir software architect ve princible arasında ne farklar vardır. Mimar ve Princible olmak için minimum bilinmesi gerekenler nedir. Hangi seviyede bilgimizin olması gerekiyor?
      Teşekkür ederim :)

  • @user16242
    @user16242 11 місяців тому +1

    Emeklerinize sağlık, teşekkürler.

  •  2 роки тому +3

    Eline sağlık hocam :)

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +2

      Teşekkür ederim. İyi seyirler.

  • @yusufcirakkk
    @yusufcirakkk Рік тому +1

    Hocam merhaba, 19:44 de yazmış olduğunuz GetOddNumbers'ı tıpkı sizin ettiğiniz gibi debug ettim. Program numbers değişkenini geçtikten sonra değişkenin içerisi EnumerablePartition türünde oluyor ve itere edeceğimiz bütün değerleri içerisinde barındırıyor, ben ise önce kontrollerin yapılıp sonra koleksiyonun içerisinin dolmasını bekliyordum. Devamında ise counter'ın tek tek arttırıldığını ve if kontrollerinin de her defasında yapıldığını gördüm.

    • @TechBuddyTR
      @TechBuddyTR  Рік тому

      Normalde debug IEnumerable belli metodlar tarafından tetiklenene kadar içerisi çalışmayan bir yapı. Ama bir debug ettiğimizde işin rengi değişiyor. O yüzden Debug edildiğinde IEnumerable tetiklenmiş gibi yapılsın diye temp bir Enumerable kullanılıyor olabilir. Siz de o yüzden Debug ederken bunu bu şekilde görmüş olabilirsiniz.

  • @sertac9756
    @sertac9756 Рік тому +1

    23:03'te Ünal'a biraz ayıp oldu :)

    • @TechBuddyTR
      @TechBuddyTR  Рік тому

      O benim gerçekten arkadaşım :) sorun yok o yüzden

  • @aliozsahin7337
    @aliozsahin7337 2 роки тому +1

    Hocam videolarınızı bişeyler öğrendikçe geri dönüp, haa böylemiymiş diyerek tekrar tekrar izliyorum :) emeğiniz için öncelikle teşekkür ederim. Bir sorum olacak. Ef'de mesela ToList dediğimizde sorgu atılıyor Ram'a alınıyor. IQueryable bir nesneye istediğimiz where clause'ları ekleyip öyle çektirebiliyoruz. List bir IEnumerable. Peki AsEnumerable() dersek nasıl çalışır.
    Yani var ogrenci = context.Student.AsEnumerable();
    ogrenci.where(i=> i.Name=="Ali").ToList()
    desem yine bütün liste ramde mi olur yoksa numarator sadece alileri mi alır

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +1

      Evet AsEnumerable() dediğimiz zaman da (filtreden önce çalışacağı için) tüm kayıtlar belleğe alınacaktır.
      AsEnumerable bize bir filtre mekanizması sağlamıyor, sadece yield return kullanarak o anlık değil ihtiyaç halinde o verinin return edilmesini sağlıyor. context.Student.AsEnumerable(); bu satır çalıştığında tüm Student tablosu içindeki datalar daha sonradan kullanılmak üzere bekletiliyor. Biz tolist veya getEnumerator().Next dediğimizde bu sefer tüm dataların yüklenmesi süreci başlıyor.

    • @aliozsahin7337
      @aliozsahin7337 2 роки тому +1

      @@TechBuddyTR teşekkür ederim hocam. Teorikte bildiğim bir konuydu ancak şuan netleşti 😀

    • @tarkbugra
      @tarkbugra Рік тому

      @@TechBuddyTR Hocam aklıma takılan bir şey oldu.
      List numbers = new() { 1, 2, 3, 4, 5 };
      var greaterThanTwo = numbers.Where(number => number > 2);
      numbers.Add(6);
      var result = greaterThanTwo.TakeLast(1);
      Console.WriteLine(string.Join(',', result));
      IEnumurable datayı bekletiliyor ve ihtiyaç halinde sonradan yürütülüyor demişsiniz yukarıda. Burada ekrana 6 yazdırmasının sebebi nedir. Biz daha bellekteki dataya ihtiyaç duymadan o şarta bağlı olan datayı değiştirdiğimiz için mi eklemiş oluyor.

  • @slymn9952
    @slymn9952 Рік тому

    var OddNumbers= Generator.GetOddNumbers();
    burada Generator sınıfı obje örneği alınmadan nasıl çağrılabildi hocam?

    • @slymn9952
      @slymn9952 Рік тому +1

      Neyse buldum hocam Static metod uygulandığı için. :)

  • @erdiunal9330
    @erdiunal9330 2 роки тому +3

    yorum