Анализатор обнаружил потенциальную ошибку, связанную с тем, что один или несколько параметров метода не были использованы.
Рассмотрим пример:
private List<uint> TranslateNgramHashesToIndexes(Language language, ....)
{
....
//var offset = (uint)Data.LanguageOffset[language];
....
if (Data.SubwordHashToIndex.TryGetValue(hashes[i]/* + offset*/,
out int index))
....
else if (....)
{
....
Data.SubwordHashToIndex.Add(hashes[i]/* + offset*/, index);
}
....
}
Параметр 'language' используется только в закомментированном коде. В такой ситуации стоит убедиться, что этот код действительно должен быть закомментирован, а не случайно оставлен таким после отладки.
Рассмотрим ещё один пример:
private void DoConnect(EndPoint address)
{
ReportConnectFailure(() =>
{
_channel = DatagramChannel.Open();
_channel.ConfigureBlocking(false);
var socket = _channel.Socket;
....
_channel.Connect(_connect.RemoteAddress);
});
}
В данном примере единственный параметр 'address' не используется. Это может привести к путанице при использовании этого метода, а в худшем случае и вовсе свидетельствует о наличии ошибки в реализации.
В случае, если параметр является устаревшим, можно пометить метод атрибутом 'Obsolete'. Если параметр намеренно не используется по какой-то другой причине, рекомендуется дать ему имя следующего вида: '_', '_1', '_2' и т. д.