Nullable-аннотации атрибутов в C#
Атрибуты в System.Diagnostics.CodeAnalysis не меняют IL, но влияют на предупреждения.
Атрибут MaybeNull - пометка для анализатора: значение может оказаться null. На запущенную программу атрибут не влияет.
Пометим свойство груза и проверим его. В Payload записали null, атрибут на эту проверку не влияет:
#nullable enable
using System.Diagnostics.CodeAnalysis;
Crate box = new Crate { Payload = null };
Console.WriteLine(box.Payload is null); // выведет True
class Crate
{
[MaybeNull]
public string? Payload { get; set; }
}
Пометьте свойство title в классе Card, запишите в него null и выведите "True".