0Pricing
C# Academy · Ders

dynamic Türü

Tür çözümlemesini dynamic ile çalışma zamanına erteleyin.

dynamic Türü, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 3. 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.

dynamic Nedir?

dynamic türü, derleme zamanı tür denetimini devre dışı bırakır. Üye erişimi ve işlemler bunun yerine çalışma zamanında belirlenir.

using System;

class Program {
    static void Main() {
        dynamic value = 10;
        Console.WriteLine(value + 5);
    }
}

Farklı Türleri Yeniden Atama

Bir dynamic değişkeni herhangi bir türü tutabilir ve atamalar arasında türünü değiştirebilir.

using System;

class Program {
    static void Main() {
        dynamic x = 1;
        Console.WriteLine(x);
        x = "now a string";
        Console.WriteLine(x);
    }
}

Çalışma Zamanı Bağlama

dynamic kullanıldığında derleyici size güvenir. Yöntem ve özellik aramaları, derleme sırasında değil, satır çalıştırıldığında gerçekleşir.

using System;

class Program {
    static void Main() {
        dynamic text = "hello";
        Console.WriteLine(text.ToUpper());
    }
}

Hatalar Çalışma Zamanında Ortaya Çıkar

Denetim ertelendiği için yanlış bir üye, derleme hatasına yol açmak yerine çalışma zamanında RuntimeBinderException oluşturur.

using System;
using Microsoft.CSharp.RuntimeBinder;

class Program {
    static void Main() {
        dynamic n = 5;
        try {
            n.NoSuchMethod();
        } catch (RuntimeBinderException) {
            Console.WriteLine("No such member");
        }
    }
}

dynamic ve var

var derleme zamanında sabittir; dynamic ise çalışma zamanında esnek kalır. Benzer görünürler, ancak çok farklı davranırlar.

using System;

class Program {
    static void Main() {
        var fixedType = 10;
        dynamic flexible = 10;
        flexible = "changed";
        Console.WriteLine(fixedType + " " + flexible);
    }
}

dynamic Üzerinde Aritmetik

dynamic üzerindeki operatörler, kullanılan gerçek değerlere göre çalışma zamanında belirlenir.

using System;

class Program {
    static void Main() {
        dynamic a = 3;
        dynamic b = 4;
        Console.WriteLine(a * b);
    }
}

dynamic Dönüş Değerleri

Tür gerçekten değişkenlik gösteriyorsa bir yöntem dynamic döndürebilir; ancak çağıranlar derleme zamanı yardımını kaybeder.

using System;

class Program {
    static dynamic GetValue(bool flag) {
        return flag ? (dynamic)42 : "text";
    }
    static void Main() {
        Console.WriteLine(GetValue(true));
        Console.WriteLine(GetValue(false));
    }
}

dynamic Kullanım Alanları

dynamic, COM birlikte çalışabilirliği, JSON benzeri veriler ve yapısı çalışma zamanına kadar bilinmeyen kodları çağırma gibi durumlarda yardımcı olur.

using System;

class Program {
    static void Main() {
        dynamic data = 100;
        data += 1;
        Console.WriteLine(data);
    }
}

Performans Maliyeti

Çalışma zamanı bağlamasının ek maliyeti vardır. Sık döngülerde veya basit kodlarda hız ve güvenlik için statik türleri tercih edin.

using System;

class Program {
    static void Main() {
        int fast = 0;
        for (int i = 0; i < 5; i++) fast += i;
        Console.WriteLine(fast);
    }
}

IntelliSense Yok

Tür çalışma zamanına kadar bilinmediği için düzenleyiciler dynamic üzerindeki üyeleri öneremez. Bu durum geliştirmeyi yavaşlatır.

using System;

class Program {
    static void Main() {
        dynamic s = "Code";
        Console.WriteLine(s.Length);
    }
}

Sınırlı Kullanın

dynamic türüne yalnızca statik tür belirlemenin senaryoyu gerçekten ifade edemediği durumlarda başvurun; diğer durumlarda somut türleri tercih edin.

using System;

class Program {
    static void Main() {
        dynamic flexible = 7;
        Console.WriteLine(flexible.GetType().Name);
    }
}

Hızlı Kontrol

dynamic konusundaki anlayışınızı sınayın.

Özet

dynamic, derleme zamanı tür denetimini kapatır ve üyeleri çalışma zamanında belirler; bu nedenle dynamic bir değişken türünü değiştirebilir ve geçersiz çağrılar RuntimeBinderException oluşturur.

Derleme zamanında sabit olan var türünün aksine dynamic esnektir; ancak performans maliyeti getirir, IntelliSense'i ortadan kaldırır ve sınırlı kullanılmalıdır.

Sıkça Sorulan Sorular

“dynamic Türü” dersi ücretsiz mi?

Evet — “dynamic Türü” 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.

“dynamic Türü” dersinde ne öğreneceğim?

Tür çözümlemesini dynamic ile çalışma zamanına erteleyin. 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 3. dersidir.

“dynamic Türü” 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. var ile Yerel Değişken Türü Çıkarımı
  2. var Ne Zaman Kullanılmamalı
  3. dynamic Türü
  4. Hedef Türü Belirlenmiş new İfadeleri
← C# Academy Sayfasına Dön