一个循环中的匿名c#委托 [英] Anonymous c# delegate within a loop

查看:172
本文介绍了一个循环中的匿名c#委托的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,我正在努力写和匿名的代表。因为整数变量在代理之间共享,所以我需要它是每个代表的本地实例,使得rs [0]总是得到nics [0],rs [1]总是得到nics [1]等等...我会实现这个。

  for(int i = 0; i< nics.Count; i ++)
{
rs [i] = new RollingSeries(monitor,new RollingSeries.NextValueDelegate(delegate()
{
return GetNetworkUtilization(nics [i]);
}));
}

Abdul khaliq

解决方案

制作 i的本地副本

 code> for(int i = 0; i< nics.Count; i ++)
{
int j = i;
rs [i] = new RollingSeries(monitor,new RollingSeries.NextValueDelegate(delegate()
{
return GetNetworkUtilization(nics [j]);
}));
}

关闭之美


Hi all i am trying to write and anonymous delegate. as the integer variable is shared among the delegate i need it to be the local instance of every delegate such that rs[0] always gets nics[0], rs[1] always gets nics[1] and so on... how will i achieve this.

for (int i = 0; i < nics.Count; i++)
   {
         rs[i] = new RollingSeries(monitor, new RollingSeries.NextValueDelegate(delegate()
         {
            return GetNetworkUtilization(nics[i]);
          }));
    }

Abdul khaliq

解决方案

Make a local copy of i:

   for (int i = 0; i < nics.Count; i++)
   {
         int j = i;
         rs[i] = new RollingSeries(monitor, new RollingSeries.NextValueDelegate(delegate()
         {
            return GetNetworkUtilization(nics[j]);
          }));
    }

The Beauty of Closures

这篇关于一个循环中的匿名c#委托的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆