Разве Microsoft.CodeQuality.Analyzers не распознает атрибут DisallowNullAttribute? - PullRequest
0 голосов
/ 09 апреля 2020

В настоящее время я использую Microsoft.CodeQuality.Analyzers 2.9.8 для анализа моего консольного проекта. net -core-3.1. В настоящее время я работаю над тем, чтобы удовлетворить анализатор, и мне было интересно.

Если у меня есть код типа

public static int DoStuff(object something)
{
    var i = something.GetHashCode();
            ~~~~~~~~~
    return i;
}

, анализатор справедливо жалуется, что something может быть нулевым и что он не проверен , Поскольку я уверен, что никто не передает null в функцию, которую я добавил [DisallowNull], вот так

public static int DoStuff([DisallowNull] object something)
{
    var i = something.GetHashCode();
    return i;
}

, но анализаторы все еще жалуются. Только если я добавлю реальную нулевую проверку или контракт, например

public static int DoStuff(object something)
{
    Contract.Requires(something != null);
    var i = something.GetHashCode();
    return i;
}

, он больше не будет жаловаться.

Разве Microsoft.CodeQuality.Analyzers не распознает атрибут DisallowNull или мне нужно настроить его для этого?

...