Передача аргумента обработчику события - C#

Узнай цену своей работы

Формулировка задачи:

Нашел подходящий для меня код, но в строке 14 выдает: "System.Net.DownloadDataCompletedEventArgs" не содержит определение для "UserToken". Подскажите, пожалуйста, что я делаю не так?
public void downloadphoto(string struri,string strtitle,string placeid)
{
    using (WebClient wc = new WebClient())
    {
        string[] data = new string[2] { strtitle, placeid };
        wc.DownloadDataCompleted += wc_DownloadDataCompleted;
        wc.DownloadDataAsync(new Uri(struri), data);
    }
}

void wc_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
{
    string[] data = (string[])e.UserToken;
    string strtitle = data[0];
    string placeid = data[1];
}
В принципе уже сделал через лямбда-выражение, но все равно интересен и вариант выше.
            using (wc = new WebClient())
            {
                wc.DownloadFileCompleted += (sender, args) =>
                    Completed(location, args);
                wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
 
                    // ....
 
                    wc.DownloadFileAsync(URL, location, location);
            }
 
        private void Completed(string location, AsyncCompletedEventArgs e)
        {
        }

Решение задачи: «Передача аргумента обработчику события»

textual
Листинг программы
  void wc_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
        {
            MessageBox.Show(sender.GetType().ToString());
            string[] data = (string[])e.UserState;
            string strtitle = data[0];
            string placeid = data[1];
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы