HasValue ve Value Özellikleri
Nullable değerleri güvenli şekilde inceleyin ve erişin.
HasValue ve Value Özellikleri, 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.
İki Temel Özellik
Her boş değer alabilen tür, HasValue (bir bool) ve Value (temel değer) özelliklerini sunar. Bunlar, türü güvenle incelemek için kullanacağınız araçlardır.
using System;
class Program {
static void Main() {
int? n = 5;
Console.WriteLine(n.HasValue);
Console.WriteLine(n.Value);
}
}HasValue Varlığı Denetler
Gerçek bir değer bulunduğunda HasValue değeri true, değer boş olduğunda ise false olur.
using System;
class Program {
static void Main() {
int? a = 10;
int? b = null;
Console.WriteLine(a.HasValue);
Console.WriteLine(b.HasValue);
}
}Value Özelliğini Güvenle Okuma
Value özelliğini okumadan önce her zaman HasValue özelliğini denetleyin; çünkü boş bir değerin Value özelliğini okumak hata fırlatır.
using System;
class Program {
static void Main() {
int? n = 42;
if (n.HasValue) {
Console.WriteLine(n.Value * 2);
}
}
}Boş Değerde Value Özelliğine Erişim Hata Fırlatır
Boş değer alabilen tür boşken Value özelliğini okursanız C#, bir InvalidOperationException fırlatır. Bu denetim sizi korur.
using System;
class Program {
static void Main() {
int? n = null;
try {
Console.WriteLine(n.Value);
} catch (InvalidOperationException) {
Console.WriteLine("Caught: no value");
}
}
}GetValueOrDefault
GetValueOrDefault(), değer mevcutsa bu değeri, aksi halde türün varsayılan değerini döndürür (int için 0, bool için false).
using System;
class Program {
static void Main() {
int? n = null;
Console.WriteLine(n.GetValueOrDefault());
}
}GetValueOrDefault ile Yedek Değer
Kendi yedek değerinizi seçmek için bir bağımsız değişken verin: GetValueOrDefault(99), değer boş olduğunda 99 döndürür.
using System;
class Program {
static void Main() {
int? n = null;
Console.WriteLine(n.GetValueOrDefault(99));
int? m = 7;
Console.WriteLine(m.GetValueOrDefault(99));
}
}Kalıp: Önce Denetle, Sonra Kullan
Yaygın bir kalıp, HasValue ve Value özelliklerini temiz bir dalda birleştirir.
using System;
class Program {
static void Describe(int? score) {
if (score.HasValue)
Console.WriteLine("Score is " + score.Value);
else
Console.WriteLine("No score yet");
}
static void Main() {
Describe(88);
Describe(null);
}
}Geriye Örtük Dönüşüm
Boş değer alabilen bir değeri normal bir türe yalnızca değer içerdiğini doğruladıktan ve ardından Value özelliğini okuduktan sonra atayabilirsiniz.
using System;
class Program {
static void Main() {
int? maybe = 15;
if (maybe.HasValue) {
int real = maybe.Value;
Console.WriteLine(real + 5);
}
}
}Boş Değer Alabilen Türün Varsayılanı
Açıkça ayarlanmayan boş değer alabilen bir tür varsayılan olarak boş olur; bu nedenle HasValue değeri yanlıştır.
using System;
class Program {
static void Main() {
int? n = default;
Console.WriteLine(n.HasValue);
}
}Toplamalarda Kullanım
Güvenli toplamlar hesaplamak için veriler üzerinde döngü kurarken HasValue ile boş değerleri atlayın.
using System;
class Program {
static void Main() {
int?[] readings = { 10, null, 5, null, 8 };
int sum = 0;
foreach (var r in readings)
if (r.HasValue) sum += r.Value;
Console.WriteLine(sum);
}
}Döngülerde GetValueOrDefault
Boş değerin sıfır olarak ele alınması gereken durumlarda GetValueOrDefault kodu sadeleştirebilir.
using System;
class Program {
static void Main() {
int?[] readings = { 10, null, 5 };
int sum = 0;
foreach (var r in readings)
sum += r.GetValueOrDefault();
Console.WriteLine(sum);
}
}Hızlı Kontrol
Boş değer alabilen türlerin özellikleri konusundaki bilginizi sınayın.
Özet
HasValue, boş değer alabilen türün bir değer içerip içermediğini bildirir; Value ise bu değeri alır. Ancak boş bir değerde Value özelliğini okumak hata fırlatır.
GetValueOrDefault(), değeri veya bir yedek değeri (türün varsayılan değerini ya da sizin sağladığınız değeri) güvenle döndürür; bu nedenle toplamlar ve güvenli okumalar için idealdir.
Sıkça Sorulan Sorular
“HasValue ve Value Özellikleri” dersi ücretsiz mi?
Evet — “HasValue ve Value Özellikleri” 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.
“HasValue ve Value Özellikleri” dersinde ne öğreneceğim?
Nullable değerleri güvenli şekilde inceleyin ve erişin. 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.
“HasValue ve Value Özellikleri” 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
- Nullable Değer Türlerine Giriş
- HasValue ve Value Özellikleri
- Null Birleştirme İşleçleri
- Hesaplamalarda Nullable