.NET / ReSharper: Анализ на NullReferenceException и контракты для него
Если вы используете ReSharper, то вы, наверняка, знакомы с его подсветкой «Possible ‘NullReferenceException’». В этой статье я кратко расскажу об анализаторе, который выводит предупреждения такого рода, и о том, как ему помочь делать это лучше.
Сразу рассмотрим пример:
public string Bar(bool condition)
{
string iAmNullSometimes = condition ? "Not null value" : null;
return iAmNullSometimes.ToUpper();
}
* This source code was highlighted with Source Code Highlighter.
ReSharper справедливо подсветит iAmNullSometimes во второй строке метода с таким предупреждением. Теперь выделим метод:
public string Bar(bool condition)
{
string iAmNullSometimes = GetNullWhenFalse(condition);
return iAmNullSometimes.ToUpper();
}
public string GetNullWhenFalse(bool condition)
{
return condition ? "Not null value" : null;
}
* This source code was highlighted with Source Code Highlighter.
После этой операции предупреждение пропадает. Почему так происходит?
AD: