无法将类型隐式转换为system.net
本文关键字:转换 system net 类型 | 更新日期: 2023-09-27 18:21:09
当我试图从远程服务器下载文件时,我的程序中出现错误,我正在使用System.Net
Lib,它在转换到它时遇到问题。
我收到错误消息
无法隐式转换类型"System.ComponentModel.AsyncCompletedEventHandler"到System.Net.DownloadProgressChangedEventHandler的
在代码块的最后一行
AsyncCompletedEventHandler(client_DownloadFileCompleted);
错误行^
Form.cs V
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
namespace Buildcraft_Installer
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void btnStartDownload_Click(object sender, EventArgs e)
{
prgDownload.Visible = true;
WebClient client = new WebClient();
client.DownloadProgressChanged += new
DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
client.DownloadProgressChanged += new
AsyncCompletedEventHandler(client_DownloadFileCompleted);
如果有人能解决这个问题或找到解决方法来获得同样的结果,我将不胜感激:)
您可能想在最后一行写client.DownloadFileCompleted
。
当前有两个对DownloadProgressChanged
的调用,一个调用具有匹配的委托类型(DownloadProgressChangedEventHandler
),另一个调用的委托类型错误(AsyncCompletedEventHandler
)。
您在订阅最后一行的事件时使用了不正确的delegate
。
如果使用Visual Studio,请编写+=
并按Tab
键,这样将生成具有正确签名的方法。
但我看到你上面的几行已经订阅了同一个活动,所以我的印象是你没有使用正确的活动来实现你想要实现的目标。
应该有DownloadFileCompleted
事件。我认为那就是你想要的。