C# 每次运行某个函数时更新委托

C# 每次运行某个函数时更新委托,c#,delegates,C#,Delegates,嗯。我觉得我的头衔很糟糕。我不知道有多少委托,只是它们像C中的函数指针。。。 我有一些代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; namespace lol { class FetchHttpSite { public static string Downloa

嗯。我觉得我的头衔很糟糕。我不知道有多少委托,只是它们像C中的函数指针。。。 我有一些代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
namespace lol
{
    class FetchHttpSite
    {
        public static string Download(string url, string ip)
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.AllowAutoRedirect = true;
            req.UserAgent = UserAgent.Random();
            req.ServicePoint.BindIPEndPointDelegate = delegate(ServicePoint servicePoint, IPEndPoint remoteEndPoint, int retryCount) {
                return new IPEndPoint(IPAddress.Parse(ip), 0);
            };

            HttpWebResponse webResponse;

            string content;

            webResponse = (HttpWebResponse)req.GetResponse();
            using (StreamReader stream = new StreamReader(webResponse.GetResponseStream()))
                content = stream.ReadToEnd();

            return content;
        }
    }
}
我想获取具有不同IP的站点。但当我尝试这个时,我意识到这个代表就像。。。静态xD。只需要我给他的第一个IP。所以如果我给他一个新的IP,他仍然会使用第一个IP。顺便说一句,我在Stackoverflow上发现BindIPEndPointDelegate代码

所以我想让这个代理始终接受这个字符串ip。比如,随时更新自己。这可能吗。我该怎么做?可能吗?我可以用另一种方法吗

谢谢大家!

编辑:

我想使用我提供给方法的IP获取站点。因此,当Web服务器收到我的请求时,我的地址是字符串ip参数。:)

这个方法有效!您知道我以前试过:返回新的IPEndPoint(IPAddress.Parse(ip),0);,e、 g.Console.Writeline(“你好!”);,那么它只运行一次!即使是你,我也要100倍。它只需要第一个IP就可以使用该方法。谢谢大家!

编辑2:


粘贴整个代码。

学员使用传递到
Download
方法的
ip
参数。您希望它使用哪个IP?我们可以看到函数的其余部分吗?很难说,但我怀疑这与一个叫做闭包的概念有关。