Передача аргумента обработчику события - 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];
}