Я не могу заставить CA1062 (проверять аргументы открытых методов) для оценки.
Я создал библиотеку классов .Net Standard 2.0 C # и установил Microsoft.CodeQuality.Analyzers
и несколько других пакетов nuget согласноЭтот снимок экрана:
Я также включил CA1062 в наборе правил для проекта, как показано на изображении:
Я создал этот класс, чтобы проверить, оценивает ли CA1062 (проверка аргументов открытых методов):
public class Person
{
public String Name { get; }
public Person(String name)
{
this.Name = name;
}
public void DeclareWarOn(Person enemy)
{
String enemyName = enemy.Name;
Console.WriteLine($"{this.Name} declared war on {enemyName}");
}
}
В методе DeclareWarOn
параметр enemy
никогда не проверяетсядля значения null
, но используется в строке String enemyName = enemy.Name;
Предполагается, что запускается CA1062, но он не срабатывает.
Другие правила действительно оценивают.Например, я создал класс исключений internal
следующим образом:
internal class MyException : Exception
{
...
}
И это действительно вызвало соответствующее предупреждение анализа кода для него (CA1064).Однако я не могу оценить CA1062.