void DataChange(ref Array ClientHandles, ref Array ItemValues)
{
for (i = 1; i <= 32; i++)
   {
if (ClientHandles[i] == 1)//错误提示:无法将带[]的索引应用于“System.Array”类型的表达式。这句该怎么改写?
        {
            long XX = ItemValues[1];//错误提示:ItemValues也是“System.Array”类型,后面也不让带[]
            SendFc16(XX);
        }
   }
}
程序描述:
客户端里面有很多的项,每个项的标记为ClientHandles[i]。例如第一个和第二个项的标记分别为ClientHandles[1]、ClientHandles[2].
我的这个程序是远程访问这个客户端,每当客户端项的值发生变化时,就会触发我程序里的DataChange事件。
上面代码中 if (ClientHandles[i] == 1)的意思是 “如果发生变化的是客户端中的第一项的时候要去做什么”希望高手能把程序中那两行出现的错误解决掉,感激不尽!!!

解决方案 »

  1.   

    改成ClientHandles.GetValue(i)
    ItemValues.GetValue(1)
      

  2.   

    如果数组里面是Int的话,可以用
    (int)ClientHandles.GetValue(i)
      

  3.   

    Array跟 T[]还是有点区别的,请使用
    GetValue(int index)
      

  4.   

    if (ClientHandles.GetValue(i) == 1)//long XX = ItemValues.GetValue(i);//如果ItemValues不是long数组,ItemValues.GetValue(i)转成long
      

  5.   

    参考 http://msdn.microsoft.com/zh-cn/library/system.array_properties%28VS.80%29.aspx
    和   http://msdn.microsoft.com/zh-cn/library/system.array.getvalue%28VS.80%29.aspx获取Array中的值应该用GetValue