// DisallowNull indicates that a null value is not permitted when setting/passing a value.
// Although the type of this property is string? we don't wish to allow anyone to actually *set* a null value,
// it's just that the value may be still be null when retrieved. Hence we mark it with [DisallowNull].
[DisallowNull]
public string? NullableProperty {
get => _nullableField;
set => _nullableField = value ?? throw new ArgumentNullException(nameof(value));
}
Code snippet taken from "Complete C# Quick Reference - C# 8".