循环中的匿名c#委托

Abd*_*liq 13 c# delegates

大家好我想写和匿名代表.因为整数变量在委托之间共享,我需要它是每个委托的本地实例,这样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]);
          }));
    }
Run Code Online (Sandbox Code Playgroud)

阿卜杜勒·卡利克

bru*_*nde 22

制作本地副本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]);
          }));
    }
Run Code Online (Sandbox Code Playgroud)

封闭之美


Jar*_*Par 6

使用local可以在每次迭代时获得不同的值

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