# V3203. Method parameter is not used.

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

Рассмотрим пример:

    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' и т. д.