Wydaje mi się, że tak naprawdę nie ma gwarancji, że zmienna nie dopuszczająca wartości zerowej nigdy nie będzie miała wartości null. Wyobraź sobie, że mam klasę, która ma jedną właściwość, która nie ma wartości zerowej:
public class Foo
{
public Foo(string test)
{
Test = test;
}
public string Test {get;set;}
}
Teraz może się wydawać, że teraz nie może być zerowy. Ale jeśli odniesiemy tę klasę do innej biblioteki, która nie korzysta z kontekstu zerowalnego, nic nie powstrzyma jej przed wysłaniem wartości null.
Czy to jest poprawne, czy są też jakieś kontrole środowiska wykonawczego, które mogą to zapewnić?
public void Foo(string test){...}
czypublic Foo(string test){...}
?