Parece-me que realmente não há garantia de que uma variável não anulável nunca terá nulo. Imagine que eu tenho uma classe que possui uma propriedade que não é anulável:
public class Foo
{
public Foo(string test)
{
Test = test;
}
public string Test {get;set;}
}
Agora, isso pode parecer que agora não pode ser nulo. Mas se fizermos referência a essa classe com outra biblioteca que não usa contexto nulo, nada impede que ele envie nulo lá.
Isso está correto ou há algumas verificações em tempo de execução, talvez, que garantam isso?
public void Foo(string test){...}
oupublic Foo(string test){...}
?