Spotify API-Net ResumePlayback - ошибка с примером кода из документации

Документация на Spotiy API_NET для ResumePlayback

приводит следующий пример:

ErrorResponse error = _spotify.ResumePlayback(uris: new List<string> { "spotify:track:4iV5W9uYEdYUVa79Axb7Rh" });

Когда я пытаюсь этот код в C#, я получаю следующую ошибку кода, которая мешает мне строить:

Ошибка CS0121 Вызов неоднозначен между следующими методами или свойствами: "SpotifyWebAPI.ResumePlayback(строка, строка, список, int?)" И "SpotifyWebAPI.ResumePlayback(строка, строка, список, строка)" Может кто-нибудь сказать мне, что не так с этим?

Кроме того, как проще всего возобновить работу существующего игрока с того места, где он был приостановлен?

редактировать

@rene ответила на первую часть моего вопроса.

Что касается второй части, как возобновить работу существующего плеера в том месте, где он был приостановлен, я получил ответ через сайт библиотеки Github, это просто:

_spotify.ResumePlayback(offset: "")

1 ответ

Решение

Метод ResumePlayback имеет две перегрузки, которые принимают эти параметры:

ErrorResponse ResumePlayback(string deviceId = "", 
                            string contextUri = "", 
                            List<string> uris = null,
                            int? offset = null)

а также

ErrorResponse ResumePlayback(string deviceId = "", 
                             string contextUri = "", 
                             List<string> uris = null,
                             string offset = "")

Когда компилятор наталкивается на эту строку

ErrorResponse error = _spotify.ResumePlayback(
                            uris: new List<string> { "spotify:track:4iV5W9uYEdYUVa79Axb7Rh" });

он должен решить, какой ResumePlayback он будет вызывать, и он не хочет делать предположения или бросать кости.

Он смотрит, какие параметры будут предоставлены, и вы только даете это uris (это третий параметр). Он примет значения по умолчанию для других параметров. Для обоих методов применяются эти значения по умолчанию (null для строк или для Nullable (int?)), Поэтому компилятор не может решить, к какому методу он должен быть привязан. Это показывает вам ошибку.

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

ErrorResponse error = _spotify.ResumePlayback(
                            uris: new List<string> { "spotify:track:4iV5W9uYEdYUVa79Axb7Rh" }
                            , 
                            offset: 0
                       );

Добавление этого именованного параметра offset и установив его на int значение 0 достаточно для компилятора, чтобы выбрать эту перегрузку для привязки к:

ResumePlayback(string deviceId, string contextUri, List<string> uris, int? offset)
Другие вопросы по тегам