Mi sembra che non ci sia davvero alcuna garanzia che una variabile non nullable non avrà mai null. Immagina di avere una classe che ha una proprietà che non è nullable:
public class Foo
{
public Foo(string test)
{
Test = test;
}
public string Test {get;set;}
}
Ora potrebbe sembrare che ora non può essere nullo. Ma se facciamo riferimento a questa classe con un'altra libreria che non utilizza un contesto nullable, nulla impedisce che invii null all'interno.
È corretto o ci sono anche alcuni controlli di runtime che forse lo garantiscono?
public void Foo(string test){...}
opublic Foo(string test){...}
?