vb中 
Sub CoordCalcul(ByRef k As Integer, ByRef f() As Double)
        Dim c As Object
        Dim i As Object
        For i = k To na
            c = pi * f(i) / 180
            x(i + 1) = x(i) + s(i) * System.Math.Cos(c)
            y(i + 1) = y(i) + s(i) * System.Math.Sin(c)
        Next i
    End Sub
转换成C#
    void CoordCalcul(int k,double[] f)
    {
        object c;
        object i;
        for( i = k;i<=na;i++)
        {
            c =System.Math.PI * f[i] / 180;
            x[i + 1] = x[i] + s[i] * System.Math.Cos(c);
            y[i + 1] = y[i] + s[i] * System.Math.Sin(c);
        }
    }
结果弹出很多错误
各位高手帮帮忙,谢谢!!!

解决方案 »

  1.   

    代码不完整,另c#数组和vb数组长度不同,可能是这个问题
      

  2.   

        在vb里
        Public s(300) As Double
        Public x(300) As Double
        Public y(300) As Double
        c#里
        public double[] s=new double[300];
        public double[] x=new double[300];
       public double[] y=new double[300];
    长度应该是相同的提示i不能做++运算
    Dim c As Object在C#里不知道object c;对不对
      

  3.   

    for(   i   =   k;i <=na;i++) 中na是什么?要聲明的吧?而且在C#中定義變量盡量用確切類型,不要用基類聲明。
    象object   i; 可以這樣for(  int i   =   k;i <=na;i++) {}
    自己再仔細檢查一下。。
      

  4.   

            void   CoordCalcul(int   k,double[]   f) 
            { 
                    object   c; 
                    object   i; 
                    for(   i   =   k;i <=na;i++) 
                    { 
                            c   =System.Math.PI   *   f[i]   /   180; 
                            x[i   +   1]   =   x[i]   +   s[i]   *   System.Math.Cos(c); 
                            y[i   +   1]   =   y[i]   +   s[i]   *   System.Math.Sin(c); 
                    } 
            } 
    1. 参数是引用的void   CoordCalcul(ref int   k,double[]   f) 
    2. object i
        for(   i   =   k;i <=na;i++) //i++是错误的,是object对象
        x[i   +   1]   =   x[i]   +   s[i]   *   System.Math.Cos(c); //i+1错误,i做下标错误
        y[i   +   1]   =   y[i]   +   s[i]   *   System.Math.Sin(c); //i+1错误 ,i做下标错误
      

  5.   

    Sub   CoordCalcul(ByRef   k   As   Integer,   ByRef   f()   As   Double) 
                    Dim   c   As   Object 
                    Dim   i   As   Object 
                    For   i   =   k   To   na 
                            c   =   pi   *   f(i)   /   180 
                            x(i   +   1)   =   x(i)   +   s(i)   *   System.Math.Cos(c) 
                            y(i   +   1)   =   y(i)   +   s(i)   *   System.Math.Sin(c) 
                    Next   i 
    End   Sub 
    -------------
    就算是VB...这也是一段糟糕且错误的代码...先打基础吧...
      

  6.   

    object   c; 
    object   i; i做循环用,为什么要object呀?给自己添加麻烦, int i  不就ok了
        for(   i   =   k;i <=na;i++) 
    k是int型,i是object型当然错了,
      

  7.   

    楼主vb如下的定义s有301个对象
    Public   s(300)   As   Double c#如下定义s只有300个对象,差一个
    public   double[]   s=new   double[300];