required Değiştiricisi
Çağıranların gerekli özellikleri ayarlamasını zorunlu kılın.
required Değiştiricisi, 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.
required Değiştiricisi
required değiştiricisi, çağıran kodu nesne oluşturulurken bir özelliği (veya alanı) ayarlamaya zorlar. "Bir değeri unuttunuz" hatalarını çalışma zamanından derleme zamanına taşır.
using System;
class Person {
public required string Name { get; init; }
}
var p = new Person { Name = "Ada" };
Console.WriteLine(p.Name); // Adarequired Üye Atlanırsa Derleme Başarısız Olur
Çağıran kod bir required üyeyi atladığında derleyici, program hiç çalışmadan önce bir hata bildirir.
using System;
class Person {
public required string Name { get; init; }
}
// var bad = new Person { }; // compile error: Name is required
var good = new Person { Name = "Lin" };
Console.WriteLine(good.Name); // Linrequired ile Başlatma
required, init ile doğal biçimde eşleşir: değer oluşturma sırasında sağlanmalı ve sonrasında değiştirilememelidir.
using System;
class Config {
public required string Url { get; init; }
public int Timeout { get; init; } = 30;
}
var c = new Config { Url = "https://api" };
Console.WriteLine(c.Url + " " + c.Timeout); // https://api 30required ile Atama
Atanabilir bir özelliği de required olarak işaretleyebilirsiniz. Özellik başlatılmalıdır, ancak daha sonra değiştirilebilir.
using System;
class Box {
public required int Size { get; set; }
}
var b = new Box { Size = 5 };
b.Size = 10; // still mutable
Console.WriteLine(b.Size); // 10required Alanlar
Yalnızca özellikler değil, alanlar da required olarak işaretlenebilir.
using System;
class Token {
public required string Value;
}
var t = new Token { Value = "abc123" };
Console.WriteLine(t.Value); // abc123Oluşturucular ve required
Bir oluşturucu required bir üyeyi ayarlıyorsa, bu oluşturucuyu kullanan çağıran kodun üyeyi ayrıca ayarlaması gerekmez. Derleyiciye bildirmek için [SetsRequiredMembers] kullanın.
using System;
using System.Diagnostics.CodeAnalysis;
class Person {
public required string Name { get; init; }
[SetsRequiredMembers]
public Person(string name) => Name = name;
}
Console.WriteLine(new Person("Sam").Name); // Samrequired ve İsteğe Bağlı Üyeleri Birlikte Kullanma
Yalnızca işaretlediğiniz üyeler zorunludur; diğerleri varsayılan değerleriyle isteğe bağlı kalır.
using System;
class Account {
public required string Owner { get; init; }
public decimal Balance { get; init; } = 0m;
}
var a = new Account { Owner = "Kai" };
Console.WriteLine(a.Owner + " " + a.Balance); // Kai 0Kalıtımda required
required üyeler devralınır. Türetilmiş bir sınıf kendi required üyelerini ekleyebilir ve tüm üyelerin gereksinimleri karşılanmalıdır.
using System;
class Base { public required int Id { get; init; } }
class Item : Base { public required string Name { get; init; } }
var i = new Item { Id = 1, Name = "Pen" };
Console.WriteLine(i.Id + " " + i.Name); // 1 PenAğır Oluşturucuların Yerine Geçme
required + init çoğu zaman büyük oluşturucuların yerini alır: okunabilir nesne başlatıcı söz dizimiyle zorunlu üyelere sahip olursunuz.
using System;
class Email {
public required string To { get; init; }
public required string Subject { get; init; }
public string Body { get; init; } = "";
}
var e = new Email { To = "a@b.com", Subject = "Hi" };
Console.WriteLine(e.To + " | " + e.Subject); // a@b.com | HiKendini Belgeleyen Amaç
Üyeleri required olarak işaretlemek, hangi değerlerin gerekli olduğunu belgeler ve türün doğru kullanılmasını kolaylaştırır.
using System;
class Registration {
public required string Username { get; init; }
public required string Password { get; init; }
public bool Newsletter { get; init; }
}
var r = new Registration { Username = "ada", Password = "x" };
Console.WriteLine(r.Username); // adaBir Araya Getirme
required, isteğe bağlı ve doğrulanan üyeleri birleştiren bir tür.
using System;
class Server {
public required string Host { get; init; }
public int Port { get; init; } = 8080;
public string Address => Host + ":" + Port;
}
var s = new Server { Host = "localhost" };
Console.WriteLine(s.Address); // localhost:8080Hızlı Kontrol
required değiştiricisinin neyi garanti ettiğini doğrulayın.
Özet
required değiştiricisini öğrendiniz.
- Üyenin oluşturma sırasında başlatılmasını zorunlu kılar; bu gereklilik derleyici tarafından denetlenir.
- Zorunlu değişmez üyeler için
initile birlikte kullanılır. [SetsRequiredMembers], bir oluşturucunun gereksinimi karşılamasına olanak tanır.- required üyeler devralınır.
Sıkça Sorulan Sorular
“required Değiştiricisi” dersi ücretsiz mi?
Evet — “required Değiştiricisi” 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.
“required Değiştiricisi” dersinde ne öğreneceğim?
Çağıranların gerekli özellikleri ayarlamasını zorunlu kılı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.
“required Değiştiricisi” 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
- Yalnızca init ile Ayarlanabilen Setter'lar
- required Değiştiricisi
- Değişmez Nesne Kalıpları
- Record'larda with İfadeleri