0Pricing
C# Academy · Ders

İfadeleri Elle Oluşturma

Expression API ile ifade ağaçları oluşturun.

İfadeleri Elle Oluşturma, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 4 dersten oluşur.

Ağaçları Elle Oluşturma

Derleyicinin bir lambda'dan ağaç oluşturmasına ek olarak, Expression üzerindeki statik fabrika yöntemlerini kullanarak kendiniz de ağaç oluşturabilirsiniz.

using System;
using System.Linq.Expressions;

var five = Expression.Constant(5);
Console.WriteLine(five);          // 5
Console.WriteLine(five.Type);     // System.Int32

Expression.Parameter

Expression.Parameter(type, name), gövdede başvurabileceğiniz ve lambda'ya bağlayabileceğiniz bir parametre düğümü oluşturur.

using System;
using System.Linq.Expressions;

var x = Expression.Parameter(typeof(int), "x");
Console.WriteLine(x.Name + " : " + x.Type); // x : System.Int32

Expression.Constant

Expression.Constant(value), bir sabit değeri gömer. İsteğe bağlı olarak türü de belirtebilirsiniz.

using System;
using System.Linq.Expressions;

var c = Expression.Constant(42);
var typed = Expression.Constant(3.14, typeof(double));
Console.WriteLine(c + " " + typed); // 42 3.14

Expression.Add

İkili işleçler için Expression.Add gibi fabrikalar bulunur. Bunlar iki işlenen ifadesi alır ve bir BinaryExpression oluşturur.

using System;
using System.Linq.Expressions;

var x = Expression.Parameter(typeof(int), "x");
var sum = Expression.Add(x, Expression.Constant(1));
Console.WriteLine(sum); // (x + 1)

Diğer İkili İşleçler

Tam kümenin tamamı için fabrikalar vardır: Subtract, Multiply, Divide, GreaterThan, Equal ve daha fazlası.

using System;
using System.Linq.Expressions;

var x = Expression.Parameter(typeof(int), "x");
var gt = Expression.GreaterThan(x, Expression.Constant(10));
var mul = Expression.Multiply(x, Expression.Constant(2));
Console.WriteLine(gt + " | " + mul); // (x > 10) | (x * 2)

Lambda İçinde Birleştirme

Expression.Lambda, bir gövdeyi ve parametreleri daha sonra derleyebileceğiniz bir Expression<TDelegate> içinde bir araya getirir.

using System;
using System.Linq.Expressions;

var x = Expression.Parameter(typeof(int), "x");
var body = Expression.Add(x, Expression.Constant(1));
var lambda = Expression.Lambda<Func<int, int>>(body, x);
Console.WriteLine(lambda); // x => (x + 1)

İç İfadeleri Birleştirme

Fabrikalar serbestçe iç içe yerleştirilebilir; böylece (x + 1) * 2 gibi karmaşık ifadeleri adım adım oluşturabilirsiniz.

using System;
using System.Linq.Expressions;

var x = Expression.Parameter(typeof(int), "x");
var addOne = Expression.Add(x, Expression.Constant(1));
var timesTwo = Expression.Multiply(addOne, Expression.Constant(2));
Console.WriteLine(timesTwo); // ((x + 1) * 2)

Üye Erişimi

Expression.Property ve Expression.Field, üye erişimi düğümleri oluşturur.

using System;
using System.Linq.Expressions;

var s = Expression.Parameter(typeof(string), "s");
var lengthAccess = Expression.Property(s, "Length");
Console.WriteLine(lengthAccess); // s.Length

Yöntem Çağrıları

Expression.Call, hedef, yöntem ve bağımsız değişkenler verildiğinde bir çağrı düğümü oluşturur.

using System;
using System.Linq.Expressions;

var s = Expression.Parameter(typeof(string), "s");
var toUpper = typeof(string).GetMethod("ToUpper", Type.EmptyTypes);
var call = Expression.Call(s, toUpper);
Console.WriteLine(call); // s.ToUpper()

Oluşturma Zamanında Tür Denetimi

Fabrikalar, oluşturma sırasında işlenenlerin türlerini doğrular. Uyuşmayan türler hemen hata oluşturur ve hataları erken yakalar.

using System;
using System.Linq.Expressions;

try {
    var bad = Expression.Add(
        Expression.Constant(1),
        Expression.Constant("text")); // int + string
} catch (InvalidOperationException) {
    Console.WriteLine("type mismatch rejected");
}

Hepsini Bir Araya Getirme

x => (x + 1) * 2 lambda'sını tamamen elle oluşturun.

using System;
using System.Linq.Expressions;

var x = Expression.Parameter(typeof(int), "x");
var body = Expression.Multiply(
    Expression.Add(x, Expression.Constant(1)),
    Expression.Constant(2));
var lambda = Expression.Lambda<Func<int, int>>(body, x);
Console.WriteLine(lambda); // x => ((x + 1) * 2)

Kısa Kontrol

İfade oluşturmanın elle nasıl çalıştığını kontrol edin.

Özet

İfade ağaçlarını elle oluşturmayı öğrendiniz.

  • Expression.Parameter ve Expression.Constant, yaprak düğümleri oluşturur.
  • Expression.Add ve benzerleri, ikili işlemler oluşturur.
  • Expression.Property ve Expression.Call, üyeleri ve yöntemleri işler.
  • Expression.Lambda, çağrılabilir bir ağacı bir araya getirir.

Sıkça Sorulan Sorular

“İfadeleri Elle Oluşturma” dersi ücretsiz mi?

Evet — “İfadeleri Elle Oluşturma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 4 dersten oluşur.

“İfadeleri Elle Oluşturma” dersinde ne öğreneceğim?

Expression API ile ifade ağaçları oluşturun. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C# Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“İfadeleri Elle Oluşturma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. İfade Ağaçları Nedir
  2. İfadeleri Elle Oluşturma
  3. İfadeleri Derleme ve Yürütme
  4. LINQ Sağlayıcılarında İfade Ağaçları
← C# Academy Sayfasına Dön