# V3201. Return value is not always used. Consider inspecting the 'foo' method.

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

Рассмотрим синтетический пример:

    Audio _currentMusic = null;

    void Foo1(....)
    {
      ....
      _currentMusic = PlayMusic();
    }

    void Foo2()
    {
      if (....)
        _currentMusic = PlayMusic();
    }
    ....
    void Foo10()
    {
      ....
      PlayMusic();      // <=
    }

В данном примере возвращаемое значение метода 'PlayMusic' используется всегда, кроме одного случая. Анализатор выдаёт предупреждение, если возвращаемое значение метода игнорируется не более чем в 10% случаев. При этом отсутствуют признаки того, что оно намеренно не используется.

В некоторых ситуациях возвращаемое значение действительно не требуется как-то использовать. Например, если метод имеет побочные эффекты (изменение свойств, полей, запись/чтение файла и прочее), и возвращаемым значением можно пренебречь. Для улучшения читаемости кода рекомендуется явно обозначить это, присвоив результат метода discard-переменной:

    _ = PlayMusic();

В этом случае предупреждения не будет.