你的StrServers到底是什么类型?是数组还是一个string?
奇怪

解决方案 »

  1.   

    需要重载[],也就是C#中索引器的概念~!你看一下MSDN就明白了!~
      

  2.   

    TheServer.GetOPCServers("127.0.0.1");
    返回的是数组吗?
      

  3.   

    lijun84说的部队,这是个类型转换的问题。
      

  4.   

    OPCServer TheServer=new OPCServer();
    string[] strs = (string[]) StrServers=TheServer.GetOPCServers("127.0.0.1");这样写。
      

  5.   

    sorry,少删了,应该这样:OPCServer TheServer=new OPCServer();
    string[] strs = (string[]) TheServer.GetOPCServers("127.0.0.1");
      

  6.   

    Convert.ToString(val)这个不成吗?
    书上说val可以是各种类型的变量
      

  7.   

    TheServer.GetOPCServers("127.0.0.1"); 是从本机返回OPC服务器的列表。是一个字符串数组。
    在VS.NET中单步执行时,提示为“System.Array”“object”,里面确实能够罗列出了本机上的服务器名(字符串),并且是一维数组。但使用我的代码编译能通过,执行就出现异常。
    各位的提议我还未来的及使用,使用过后再给分。先谢
      

  8.   

    athossmth(athos):  我试过了,发生了同样的异常。很奇怪
      

  9.   

    jacklupig(jacklupig) :
       Convert.ToString(val)这个函数是转换为字符串,能转换为字符串数组吗?
      

  10.   

    zhangchaoyu,试试这个可以吗?OPCServer TheServer = new OPCServer();
    object objectOpcServers = (object) TheServer.GetOPCServers("127.0.0.1");
    System.array arrayOpcServers = (System.array)objectOpcServers;
    IEnumerator ieOpcServers = arrayOpcServer.GetEnumerator();ieOpcServers.Reset();
    for (ieOpcServers.Reset();ieOpcServers.MoveNext();)
    {
      string stringOpcServer = (string)ieOpcServers.Current;
      // 这里应该就是得到的结果。
    }