C#'da lambda ifadeleri nasıl kullanılır?

Katılım
9 Mart 2017
Mesajlar
1.876
Çözümler
12
Arkadaşlar Java'da yazdığım basit 2 satırlık kodu C#'da yapamıyorum. Daha doğrusu lambda ifadelerini C#'da nasıl kullanacağımı bilmiyorum. Videoda size bir soru sordum. İzleyip cevaplayabilirseniz sevinirim.

Video:

Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
 
Son düzenleyen: Moderatör:

C# için lambda expressions olarak aratırsanız daha çok kaynağa ulaşırsınız .

Yapmak istediğiniz şu şekilde deneyiniz:
C#:
...(str=>str.kaydetmek için function yazınız);


Not: Sorununuzun çözülüp çözülmediğini yazarsanız çok mutlu olurum .
 
Son düzenleme:
Not: Sorununuzun çözülüp çözülmediğini yazarsanız çok mutlu olurum .
Hayır sorunum çözülmedi. Bu kodu düzenleyip doğrusunu bana yazarsanız sevinirim. ☺
C#:
using System;

namespace TestingConsole2
{
    class Program
    {
        static void Main(string[] args)
        {
            Testing Testing = new Testing("Merhaba","Selam");
            Testing.Apply(str->{ return str; }, str->{ return str; });
            Testing.WriteStrings();
            Console.WriteLine("Hello World!");
        }
    }
}

C#:
using System;
using System.Collections.Generic;
using System.Text;

namespace TestingConsole2
{
    class Testing
    {
        public string Str1 { get; set; }
        public string Str2 { get; set; }

        public Testing(string str1,string str2)
        {
            this.Str1 = str1;
            this.Str2 = str2;
        }

        public void Apply(Test1 test1,Test2 test2)
        {
            this.Str1 = test1.Add(this.Str1);
            this.Str2 = test1.Add(this.Str2);
        }

        public void WriteStrings()
        {
            Console.WriteLine(this.Str1 + " "  + this.Str2);
        }
    }
}

C#:
using System;
using System.Collections.Generic;
using System.Text;

namespace TestingConsole2
{
    public interface Test2
    {
        string Add(string str);
    }
}

Kod:
using System;
using System.Collections.Generic;
using System.Text;

namespace TestingConsole2
{
    public interface Test1
    {
        string Add(string str);
    }
}
 
@Börtü Böcek Biraz işim var kusura bakmayın. Akşam kodları düzenleyip atacağım .
Bildirim düşmesi için tekrardan yazıyorum.

Sadece "public Func<string, string> fill = x => x" fonksiyonunu ekledim peki ne işe yarıyor bu fonksiyon?

Aslında normal bir fonksiyondan farksız fakat " Func<gelen değer, döndürelecek değer> fill = x => x" komudun mantığı bu şekilde işliyor "x=>x" bu da C#'taki lambda için kullanılan Syntax biçimi .

C#:
  class Program
    {
      
        static void Main(string[] args)
        {
            Testing Testing = new Testing("Merhaba","Selam");
            Testing.WriteStrings();
            Testing.Apply("sa","as");
            Testing.WriteStrings();
            Console.WriteLine("Hello World!");
            Console.ReadLine();
        }

    }

    public class Testing
    {
        public string Str1 { get; set; }
        public string Str2 { get; set; }
        Test2 _test2 = new Test2();
        Test1 _test1 = new Test1();
        public Testing(string str1=null, string str2=null)
        {
            Str1 = str1;
            Str2 = str2;
        }

        public void Apply(string test,string test2)
        {
            Str1 = _test1.Add(test);
            Str2 = _test2.Add(test);
        }

        public void WriteStrings()
        {
            Console.WriteLine(Str1 + " " + Str2);
        }
      

    }
    public class Test2
    {

        public Func<string, string> fill = x => x;
        public string Add(string test)
        {
            return fill(test);
        }
    }

    public class Test1
    {

        public Func<string, string> fill = x => x;
        public string Add(string test)
        {
            return fill(test);
        }
    }
@Börtü Böcük En yakın zamanda cevabınızı bekliyor olacağım.
 
Son düzenleme:
Aslında bildirim gelmedi. Ben kendim konuyu kontrol edince gördüm. Çok teşekkür ederim yardımınız için.

C#:
public Func<string, string> fill = x => { return x; };
Böyle yazınca da oluyormuş.
Bu Func dediğimiz şey bir interface değil mi? Üzerine gelince delegate yazıyor. Delegate temsilci demek ama Java da böyle bir şey yok. Benim acilen bir C# eğitimi almam şart.
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…