Required üyeler
required anahtar kelimesiyle zorunlu özellikleri öğrenirsin.
Required üyeler
required anahtar kelimesi, bir özelliğin nesne oluşturulurken mutlaka ayarlanmasını zorunlu kılar. Bildirimi: public required string Name { get; set; }.
Bunu yazmazsan new Person() derleme hatası verir; new Person { Name = "Ayşe" } olmak zorundadır. Bu, eksik veriden kaynaklanan hataları derleme zamanında yakalar. required ile init birlikte de kullanılabilir: hem zorunlu hem de sonradan değişmez özellik elde edilir.
required + init
required ve init birlikte kullanıldığında hem zorunlu hem de değişmez özellik elde edilir: public required string Name { get; init; }.
Bu kombinasyon, kayıt (record) benzeri tipler oluşturur. Nesne başlatıcı ile değer verilir, sonradan değiştirilemez ve başlatılmadan derlenmez. Veri taşıyan sınıflarda değer nesneleri (value objects) için idealdir. Modern C# kodunda veri sınıflarının standart biçimidir.
Uygulama Person sınıfına required özellik ekle
Bir Person sınıfı tanımla. İçine public required string Name { get; set; } özelliğini ekle. Main içinde new Person { Name = "Ayşe" } ile örnek oluştur ve Name'i yazdır.
Örnek çözümü göster
Person'a required Name özelliği ekle. Main içine Person p = new Person { Name = "Ayşe" }; Console.WriteLine(p.Name); yaz.
Örnek çözüm:
using System;
class Person
{
public required string Name { get; set; }
}
class Program
{
static void Main()
{
Person p = new Person { Name = "Ayşe" };
Console.WriteLine(p.Name);
}
}
Kendini test et
-
Anahtar kelimeyi davranışına eşle
- required
- Başlatmada zorunlu
- init
- Sonradan değişmez
- set
- Her zaman yazılır
- get
- Okuma
-
Hangisi başlatmada ayarlanması zorunlu özelliktir?
- public string Name { get; set; }
- public string Name { get; init; }
- public required string Name { get; set; }
- public string Name { get; }
Cevabı göster
public required string Name { get; set; } — Doğru. required ile özellik başlatmada ayarlanması zorunlu olur.
-
required özelliği tamamla
public ____ string Name { get; set; }Cevabı göster
public required string Name { get; set; }