Koleksiyonlarda Hedef Türü Belirleme
Koleksiyon oluşturmayı hedef türün yönlendirmesini sağlayın.
Koleksiyonlarda Hedef Türü Belirleme, 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.
Hedef Türleme Nedir
Hedef türleme, derleyicinin koleksiyon ifadesinin ne oluşturması gerektiğini sağ tarafta açıkça belirtilen türden değil, ifadenin kullanıldığı bağlamdan çıkarmasıdır.
using System;
int[] numbers = [1, 2, 3]; // target type is int[]
Console.WriteLine(numbers.GetType().Name); // Int32[]Türü Hedef Belirler
Aynı sabit, aktarıldığı değişkene, parametreye veya dönüş türüne bağlı olarak farklı bir somut türe dönüşür.
using System;
using System.Collections.Generic;
int[] asArray = [1, 2, 3];
List<int> asList = [1, 2, 3];
Console.WriteLine(asArray is int[]); // True
Console.WriteLine(asList is List<int>); // TrueYöntem Çağrılarında Hedef Türleme
Bir yöntem parametresi koleksiyon türünde olduğunda, bağımsız değişken sabiti o parametrenin hedef türüne göre belirlenir.
using System;
using System.Collections.Generic;
static void Show(List<int> items) =>
Console.WriteLine(string.Join(",", items));
Show([10, 20, 30]); // target-typed to List<int>Dönüşlerde Hedef Türleme
Bir yöntemin gövdesi yalın bir koleksiyon ifadesi döndürebilir; bildirilen dönüş türü hedefi sağlar.
using System;
using System.Collections.Generic;
static List<string> Tags() => ["csharp", "dotnet", "ranges"];
Console.WriteLine(Tags().Count); // 3Öğe Türü Çıkarımı
Öğe türü hedeften gelir. Hedef double[] ise tamsayı sabitleri otomatik olarak double türüne genişletilir.
using System;
double[] values = [1, 2, 3]; // ints widen to double
Console.WriteLine(values[0] + 0.5); // 1.5Hedef Olarak Arayüzler
Koleksiyon ifadeleri IEnumerable<T>, IReadOnlyList<T> veya ICollection<T> gibi arayüzleri hedefleyebilir; derleyici uygun bir somut tür seçer.
using System;
using System.Collections.Generic;
IReadOnlyList<int> ro = [1, 2, 3];
Console.WriteLine(ro.Count); // 3Üçlü İfadeler ve Hedef Türleme
Koşulun her iki kolu da koleksiyon ifadesi olabilir ve her biri ortak sonuç türüne göre belirlenir.
using System;
bool useDefaults = false;
int[] config = useDefaults ? [0, 0, 0] : [1, 2, 3];
Console.WriteLine(string.Join(",", config)); // 1,2,3var Bir Hedef Değildir
var x = [1, 2, 3]; yazamazsınız; çünkü var bir hedef tür sağlamaz. Açık bir tür belirtin veya ifadeyi tür beklenen bir yerde kullanın.
using System;
// var x = [1, 2, 3]; // compile error: no target type
int[] x = [1, 2, 3]; // ok
Console.WriteLine(x.Length); // 3Yayma Öğeleriyle Hedef Türleme
Hedef türleme ile yayma öğeleri birlikte çalışır: hedef son koleksiyonun türünü belirlerken yayma öğeleri içeriği sağlar.
using System;
using System.Collections.Generic;
int[] src = [1, 2, 3];
List<int> copy = [..src]; // copies into a List<int>
Console.WriteLine(copy is List<int>); // TrueGereksiz Ayrıntıları Azaltma
Hedef türleme, tür adlarının tekrarlanmasını ortadan kaldırır. Gereksiz ayrıntılar içeren eski biçimi kısa yeni biçimle karşılaştırın.
using System;
// old: type repeated
int[] oldWay = new int[] { 1, 2, 3 };
// new: type only on the left
int[] newWay = [1, 2, 3];
Console.WriteLine(oldWay.Length == newWay.Length); // TrueHepsini Bir Araya Getirme
Burada tek bir yardımcı yöntem salt okunur herhangi bir koleksiyonu kabul ediyor ve çağıranlar hedef türü belirlenen sabitleri serbestçe geçiriyor.
using System;
using System.Collections.Generic;
static int Count(IReadOnlyCollection<int> c) => c.Count;
Console.WriteLine(Count([1, 2, 3, 4])); // 4Hızlı Sınama
Hedef türlemeyi kavrayışınızı sınayın.
Özet
Koleksiyon ifadelerinin hedef türüne göre nasıl belirlendiğini öğrendiniz.
- Hedef tür (değişken, parametre veya dönüş türü) oluşturma işlemini yönlendirir.
- Öğe türleri hedefe uyacak şekilde genişletilebilir.
IReadOnlyList<T>gibi arayüzler geçerli hedeflerdir.varbir hedef olamaz.
Sıkça Sorulan Sorular
“Koleksiyonlarda Hedef Türü Belirleme” dersi ücretsiz mi?
Evet — “Koleksiyonlarda Hedef Türü Belirleme” 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.
“Koleksiyonlarda Hedef Türü Belirleme” dersinde ne öğreneceğim?
Koleksiyon oluşturmayı hedef türün yönlendirmesini sağlayın. 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.
“Koleksiyonlarda Hedef Türü Belirleme” 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
- Koleksiyon İfadesi Söz Dizimi
- Yayma Öğesi
- Koleksiyonlarda Hedef Türü Belirleme
- Koleksiyon Oluşturucuları