Üyelerde Parametreleri Yakalama
Birincil oluşturucu parametrelerini türün her yerinde kullanın.
Üyelerde Parametreleri Yakalama, 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.
Parametreleri Üyelerde Kullanma
Birincil oluşturucuların gücü, parametreleri üyelerin içinde kullanabilmenizden gelir: yöntemler, özellikler ve alan başlatıcıları. Derleyici, depolamayı gerektiği şekilde düzenler.
using System;
class Multiplier(int factor) {
public int Apply(int n) => n * factor;
}
Console.WriteLine(new Multiplier(3).Apply(5)); // 15Yakalama ve Yalnızca Başlatıcı Kullanımı
Bir parametre yalnızca bir alan veya özellik başlatıcısında kullanılıyorsa ek depolama gerekmez. Bir yöntemde kullanılıyorsa derleyici onu gizli bir alanda saklar.
using System;
class A(int x) {
public int Stored = x; // initializer only
}
class B(int x) {
public int Get() => x; // captured into a field
}
Console.WriteLine(new A(7).Stored); // 7
Console.WriteLine(new B(9).Get()); // 9Parametreler Değiştirilebilir
Birincil oluşturucu parametreleri normal parametreler gibi davranır: onları salt okunur kabul etmediğiniz sürece örnek içinde değiştirilebilirler. Birini değiştirmek, saklanan alanı da değiştirir.
using System;
class Toggle(bool on) {
public void Flip() => on = !on;
public bool State => on;
}
var t = new Toggle(false);
t.Flip();
Console.WriteLine(t.State); // TrueSalt Okunur Özellikler Olarak Dışa Açma
Yaygın bir yaklaşım, temiz bir herkese açık arayüz sunarken parametreyi sınıf içinde tutmak için onu yalnızca get erişimcisi bulunan bir özellikle dışa açmaktır.
using System;
class User(string email) {
public string Email { get; } = email;
}
Console.WriteLine(new User("a@b.com").Email); // a@b.comParametrelerden Hesaplanan Özellikler
Parametreler, ifade gövdeli hesaplanan özelliklere doğal biçimde aktarılır.
using System;
class Money(decimal amount, string currency) {
public string Display => amount.ToString("0.00") + " " + currency;
}
Console.WriteLine(new Money(9.5m, "USD").Display); // 9.50 USDBirden Çok Yöntemde Parametre Kullanma
Aynı saklanan parametre birçok yöntem tarafından paylaşılabilir ve oluşturma sırasında başlatılan özel bir alan gibi davranabilir.
using System;
class Range2(int lo, int hi) {
public bool Contains(int n) => n >= lo && n <= hi;
public int Clamp(int n) => Math.Max(lo, Math.Min(hi, n));
}
var r = new Range2(0, 10);
Console.WriteLine(r.Contains(5)); // True
Console.WriteLine(r.Clamp(15)); // 10Başvuru Türlerini Yakalama
Yakalanan başvuru türü parametreleri, enjekte edilen bağımlılıkları saklamanıza ve bunları herhangi bir yöntemden çağırmanıza olanak tanır.
using System;
using System.Collections.Generic;
class Repo(List<string> store) {
public void Add(string item) => store.Add(item);
public int Count => store.Count;
}
var list = new List<string>();
var repo = new Repo(list);
repo.Add("x");
Console.WriteLine(repo.Count); // 1Yanlışlıkla İki Kez Saklamaktan Kaçınma
Bir parametreyi hem bir alana atar hem de parametreyi yöntemlerde kullanırsanız değeri iki kez saklayabilirsiniz. Açıklık için tek bir yaklaşımı tercih edin.
using System;
class Clean(int x) {
// expose once via property, reference property in methods
public int Value { get; } = x;
public int Doubled() => Value * 2;
}
Console.WriteLine(new Clean(4).Doubled()); // 8Lambda'larda Parametreler
Parametreler, tıpkı alanlar gibi sınıf içinde tanımlanan lambda'lar tarafından yakalanabilir.
using System;
using System.Collections.Generic;
using System.Linq;
class Filter(int threshold) {
public IEnumerable<int> KeepAbove(IEnumerable<int> xs) =>
xs.Where(n => n > threshold);
}
var f = new Filter(3);
Console.WriteLine(string.Join(",", f.KeepAbove(new[]{1,2,3,4,5}))); // 4,5Kapsamın Yaşam Süresi
Yakalanan bir parametre, nesne var olduğu sürece yaşar. Fiilen örnek durumunun bir parçasıdır; bu nedenle yöntem çağrıları arasında sıfırlandığını varsaymayın.
using System;
class Accumulator(int seed) {
private int total = seed;
public int Add(int n) { total += n; return total; }
}
var a = new Accumulator(100);
Console.WriteLine(a.Add(1)); // 101
Console.WriteLine(a.Add(1)); // 102Bir Araya Getirme
Bu hizmet iki bağımlılığı yakalar ve bunları yöntemler arasında kullanır; böylece tipik gerçek dünya yapısını gösterir.
using System;
class PriceService(decimal taxRate, string currency) {
public decimal WithTax(decimal net) => net * (1 + taxRate);
public string Format(decimal v) => v.ToString("0.00") + " " + currency;
}
var s = new PriceService(0.2m, "EUR");
Console.WriteLine(s.Format(s.WithTax(100m))); // 120.00 EURHızlı Kontrol
Birincil oluşturucu parametrelerinin nasıl saklandığını doğrulayın.
Özet
Birincil oluşturucu parametrelerinin üyelerde nasıl kullanıldığını öğrendiniz.
- Yöntemlerde kullanıldıklarında parametreler gizli alanlarda yakalanır.
- Yalnızca başlatıcılarda kullanıldıklarında ek depolama gerekmez.
- Temiz bir dış yüzey için bunları yalnızca get erişimli özellikler aracılığıyla sunun.
- Nesnenin yaşam süresi boyunca örnek durumu gibi davranırlar.
Sıkça Sorulan Sorular
“Üyelerde Parametreleri Yakalama” dersi ücretsiz mi?
Evet — “Üyelerde Parametreleri Yakalama” 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.
“Üyelerde Parametreleri Yakalama” dersinde ne öğreneceğim?
Birincil oluşturucu parametrelerini türün her yerinde kullanı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 2. dersidir.
“Üyelerde Parametreleri Yakalama” 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
- Sınıflarda Birincil Oluşturucular
- Üyelerde Parametreleri Yakalama
- Struct'larla Birincil Oluşturucular
- Özellikler ve Temel Türlerle Birleştirme