No overload for 'method' matches delegate 'deleg

本文关键字:delegate deleg matches method No overload for | 更新日期: 2023-09-27 18:08:49

这只是代码的一部分

几行之后,我试图将整型转换为双精度。但是double是一个数组的事实使得它很难…

我需要像在前面的函数中一样包含" I ",但它不起作用,并且我得到以下错误;

webKoordx_OpenReadComplete不重载匹配委托System.Net.OpenReadCompletedEventHandler

如果你知道任何解决方案,或者能够看到我错过的东西,请帮助我!

private void getKoord(int i)
    {
        string stringKoX = "http://media.vgy.se/kristoferpk/spots/" + i + "/koordinatx.html";
        string stringKoY = "http://media.vgy.se/kristoferpk/spots/" + i + "/koordinaty.html";
        var webKoordx = new WebClient();
        webKoordx.OpenReadAsync(new Uri(stringKoX));
        webKoordx.OpenReadCompleted += new OpenReadCompletedEventHandler(webKoordx_OpenReadComplete);
        var webKoordy = new WebClient();
        webKoordy.OpenReadAsync(new Uri(stringKoY));
        webKoordy.OpenReadCompleted += new OpenReadCompletedEventHandler(webKoordy_OpenReadComplete);
    }
    void webKoordx_OpenReadComplete(object sender, OpenReadCompletedEventArgs e, int i)//<<-----
    {
        try
        {
            using (var reader = new StreamReader(e.Result))
            {
                koordx = reader.ReadToEnd();
                koordx_d[i] = Convert.ToDouble(koordx);
            }
        }
        catch
        {
            MessageBox.Show("Kan ej ansluta");
            MessageBox.Show("Kontrollera din anslutning");
        }
    }
    void webKoordy_OpenReadComplete(object sender, OpenReadCompletedEventArgs e)//<<-----
    {
        try
        {
            using (var reader = new StreamReader(e.Result))
            {
                koordy = reader.ReadToEnd();
                koordy_d[i] = Convert.ToDouble(koordy);
            }
        }
        catch
        {
            MessageBox.Show("Kan ej ansluta");
            MessageBox.Show("Kontrollera din anslutning");
        }
    }

No overload for 'method' matches delegate 'deleg

您不能像这样向事件处理程序传递额外的信息。

相反,您可以添加一个lambda表达式来处理该事件,并从其闭包传递您的额外信息:

webKoordx.OpenReadCompleted += (sender, e) => MyMethod(e.Result, i);