public static void Main()
Console.WriteLine(x.HasValue);
var nInt = new NullableInt();
Console.WriteLine(nInt2.HasValue);
Console.WriteLine(nInt.GetValueOrDefault(-1));
Console.WriteLine(nInt.HasValue);
Console.WriteLine(nInt.GetValueOrDefault());
Console.WriteLine(nInt.Value);
Console.WriteLine(nInt.HasValue);
Console.WriteLine(nInt.GetValueOrDefault());
Console.WriteLine(nInt.Value);
Console.WriteLine(nInt.HasValue);
Console.WriteLine(nInt.GetValueOrDefault());
Console.WriteLine(nInt.Value);
Console.WriteLine($"Deze fout is verwacht: {ex.Message}");
Console.WriteLine(nInt.HasValue);
public struct NullableInt
if (value == _waarde.HasValue)
throw new ApplicationException($"Onverwachte situatie bij zetten van {nameof(HasValue)}");
throw new ApplicationException("Waarde van een Nullable type zonder waarde kan niet worden opgevraagd");
public NullableInt(int waarde)
public int GetValueOrDefault(int standaardwaarde = default(int))
return _waarde.HasValue ? _waarde.Value : standaardwaarde;
public static implicit operator NullableInt(int value) {
return new NullableInt(value);