Если вы используете 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.`
После этой операции предупреждение пропадает. Почему так происходит?