Quando programma in Java, rendo esplicito tutto il nullability; cioè, si presume che un'istanza di Foo sia non nulla, e se voglio che sia nullo, io uso un'annotazione @Nullable
(o meglio, Optional<Foo>
). Ma C # non supporta nativamente le annotazioni e Nullable < > è solo per i tipi di valore.
Ma cosa succede se ho fatto qualcosa di simile?
struct Value<T> where T : class {
T value;
}
E quindi usa Value<Foo>?
come tipo per un campo. Che impatto avrebbe avuto sulle prestazioni / memoria, e c'è qualcosa che rende questa idea pessima?