HasValue- ja Value-ominaisuudet
Tarkastelkaa nullable-arvoja ja käyttäkää niitä turvallisesti.
HasValue- ja Value-ominaisuudet on ilmainen C# Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu C# Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C# Academy-kurssilla on yhteensä 4 oppituntia.
Kaksi tärkeää ominaisuutta
Jokaisella nullable-arvolla on HasValue (bool) ja Value (taustalla oleva arvo). Näiden avulla voitte tarkastella arvoa turvallisesti.
using System;
class Program {
static void Main() {
int? n = 5;
Console.WriteLine(n.HasValue);
Console.WriteLine(n.Value);
}
}HasValue tarkistaa arvon olemassaolon
HasValue on true, kun arvo on olemassa, ja false, kun arvo on null.
using System;
class Program {
static void Main() {
int? a = 10;
int? b = null;
Console.WriteLine(a.HasValue);
Console.WriteLine(b.HasValue);
}
}Valuen lukeminen turvallisesti
Tarkistakaa aina HasValue ennen Value-ominaisuuden lukemista, sillä null-arvon Value-ominaisuuden lukeminen aiheuttaa poikkeuksen.
using System;
class Program {
static void Main() {
int? n = 42;
if (n.HasValue) {
Console.WriteLine(n.Value * 2);
}
}
}Valuen käyttäminen null-arvolla aiheuttaa poikkeuksen
Jos luette Value-ominaisuuden, kun nullable-arvo on null, C# aiheuttaa InvalidOperationException-poikkeuksen. Tarkistus estää tämän.
using System;
class Program {
static void Main() {
int? n = null;
try {
Console.WriteLine(n.Value);
} catch (InvalidOperationException) {
Console.WriteLine("Caught: no value");
}
}
}GetValueOrDefault
GetValueOrDefault() palauttaa arvon, jos se on olemassa, ja muussa tapauksessa tyypin oletusarvon (int-tyypille 0 ja bool-tyypille false).
using System;
class Program {
static void Main() {
int? n = null;
Console.WriteLine(n.GetValueOrDefault());
}
}GetValueOrDefault varavaihtoehdolla
Välittäkää argumentti, jos haluatte määrittää oman varavaihtoehdon: GetValueOrDefault(99) palauttaa arvon 99, kun arvo on null.
using System;
class Program {
static void Main() {
int? n = null;
Console.WriteLine(n.GetValueOrDefault(99));
int? m = 7;
Console.WriteLine(m.GetValueOrDefault(99));
}
}Toimintamalli: tarkista ja käytä
Yleinen toimintamalli yhdistää HasValue- ja Value-ominaisuudet selkeäksi haaraksi.
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);
}
}Implisiittinen muunnos takaisin
Voitte sijoittaa nullablen tavalliseen tyyppiin vasta, kun olette varmistaneet arvon olemassaolon ja lukeneet Value-ominaisuuden.
using System;
class Program {
static void Main() {
int? maybe = 15;
if (maybe.HasValue) {
int real = maybe.Value;
Console.WriteLine(real + 5);
}
}
}Nullable-tyypin oletusarvo
Nullable-tyyppi, jolle ei ole määritetty arvoa erikseen, saa oletusarvokseen null, joten HasValue on false.
using System;
class Program {
static void Main() {
int? n = default;
Console.WriteLine(n.HasValue);
}
}Käyttö koosteissa
Käykää data läpi ja ohittakaa null-arvot HasValue-ominaisuuden avulla, jotta voitte laskea summat turvallisesti.
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);
}
}GetValueOrDefault silmukoissa
GetValueOrDefault voi yksinkertaistaa koodia tilanteissa, joissa null-arvo halutaan käsitellä nollana.
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);
}
}Pikatesti
Testatkaa nullable-ominaisuuksien tuntemuksenne.
Kertaus
HasValue kertoo, sisältääkö nullable-arvo arvon, ja Value noutaa sen. Null-arvon Value-ominaisuuden lukeminen kuitenkin aiheuttaa poikkeuksen.
GetValueOrDefault() palauttaa turvallisesti arvon tai varavaihtoehdon, joka voi olla tyypin oletusarvo tai itse määrittämänne arvo. Siksi se sopii erinomaisesti summien laskemiseen ja turvalliseen lukemiseen.
Opi C# tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 93
- Oppitunnit
- 346
Usein kysytyt kysymykset
Onko oppitunti ”HasValue- ja Value-ominaisuudet” ilmainen?
Kyllä – oppitunnin ”HasValue- ja Value-ominaisuudet” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko C# Academy-kurssin, päivitä CoddyKit PROhon. C# Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”HasValue- ja Value-ominaisuudet”?
Tarkastelkaa nullable-arvoja ja käyttäkää niitä turvallisesti. Harjoittelet C# Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni C# Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin C# Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”HasValue- ja Value-ominaisuudet”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä C# Academy-oppitunnilla?
Kyllä. Jokainen C# Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Nullable-arvotyyppien esittely
- HasValue- ja Value-ominaisuudet
- Null-yhdistämisoperaattorit
- Nullable-arvot laskutoimituksissa