Если библиотека классов была написана с включенными обнуляемыми ссылочными типами, разработчик не всегда может проверить null
, так как компилятор не будет выдавать предупреждения / ошибки.
Примите следующий код в библиотеке сРазрешенные типы ссылок, допускающие значение NULL:
public class Class1
{
public void MyMethod(string s)
{
// don't check for null as compiler is happy
s.ToLower();
}
public void MyMethod2(string? s)
{
// check for null as compiler is warning otherwise
if (s != null)
{
this.MyMethod(s);
}
}
}
Если потребитель вызвал Class1.MyMethod
, не включив типы ссылок NULL, они не получат предупреждение при выполнении следующего вызова:
var c = new Class1();
c.MyMethod(null);
ЭтоМожно ли каким-то образом заставить или, по крайней мере, предупредить использование кода, чтобы включить обнуляемые ссылочные типы?