У меня странная проблема, связанная с тем, что sonarlint (расширение Visual Studio) не идентифицирует параметры метода как используемые, если они используются в кортеже выражения switch (новая функция c# 8). Вот фрагмент кода для демонстрации:
private bool Xor(bool A, bool B)
{
return (A, B) switch
{
(false, false) => false,
(true, false) => true,
(false, true) => true,
(true, true) => false,
};
}
Если я скомпилирую этот код, я получаю следующий запах кода:
"Удалите этот параметр 'A', значение которого равно игнорируется в методе "для обоих параметров
Но метод явно работает как задумано. Как ни странно, это происходит только с закрытым методом
Я что-то не так делаю? Или это неожиданное поведение?