Я получаю предупреждение ReSharper (2018.1) для Possible 'System.NullReferenceException'
, когда я неявно проверяю ноль с помощью if (obj)
вместо if (obj ! = null)
.
Например:
using JetBrains.Annotations;
using UnityEngine.UI;
public class CanBeNullTest : MonoBehaviour
{
[CanBeNull] public Button Button { get; set; }
private void EnableButton_explicitCheck()
{
if (Button != null) Button.enabled = true;
}
private void EnableButton_implicitCheck()
{
if (Button) Button.enabled = true;
}
//private void EnableButton_cSharp6()
//{
// // null propagating operator is not available in C# 4
// Button?.enabled = true;
//}
}
Только неявная проверка нуля показывает предупреждение ReSharper:
![ReSharper-null-check-warning](https://i.stack.imgur.com/5gBVk.png)
Я посмотрел на страницу ReSharper для «Почему ReSharper предлагает это» и ссылок там, но я не смог найти объяснения этому.
Это ограничение ReSharper? Или это неверный или плохой стиль для проверки на ноль неявно?