VB代码:
  Loop Until k = 3 Or UBound(datavalue) > 11机器人转过来的C#代码:
 while (!(k == 3 | Information.UBound(datavalue) > 11)); 问题是:调试的时候出现““UBound”方法没有采用“1个参数重载””.鼠标放在““UBound”上出现的提示是《int.Information.UBound(Array Array, int Rank)返回可用于数组的制定维数最大下标》
请问UBound的另一个参数是什么??这段代码该C#怎么写..
请高手帮忙给点思路 万分感激!!!

解决方案 »

  1.   

    while(k!=3&&datavalue.Length<=11)
    ok了
      

  2.   

    有个问题要解决,c#里数组不可变长,
    你可能要把数组换成List或者ArrayList
      

  3.   

    需要引用 Microsoft.VisualBasic.dll 并且在代码中 using Microsoft.VisualBasic,这样就找到了 Information 类。
      

  4.   

    public static int UBound(Array Array, [Optional, DefaultParameterValue(1)] int Rank)
    {
        if (Array == null)
        {
            throw ExceptionUtils.VbMakeException(new ArgumentNullException(Utils.GetResourceString("Argument_InvalidNullValue1", new string[] { "Array" })), 9);
        }
        if ((Rank < 1) || (Rank > Array.Rank))
        {
            throw new RankException(Utils.GetResourceString("Argument_InvalidRank1", new string[] { "Rank" }));
        }
        return Array.GetUpperBound(Rank - 1);
    }
    第二个参数缺省值为1。但是也许有的编译器版本根本不去处理OptionalAttroibute。