动态数组Java程序转换为C#

时间:2010-04-12 08:49:59

标签: c#

以下程序最初是在java中。但是我在C#中的程序仍然有1个错误 (该错误列在第二段代码的评论中)。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DynArray
{
public class DynArrayTester
{
    static void Main(string[] args)
    {
        DynArray da = new DynArray(5);

        for (int i = 1; i <= 7; i++)
        {
            da.setData(i, i);
            //da.put(0, 0);
            //da.put(6, 6);
        }
        Console.WriteLine(da);
    }

}/*DynArrayTester*/
}





using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

 namespace DynArray
{
public class DynArray
{
    //toestand
    private int[] data;

    //gedrag
    public DynArray(int size)
    {
        data = new int[size];
    }

    public int getData(int index)
    {
        return data[index - 1];
    }

    private void expand(int size)
    {

        int[] tmp = data;
        data = new int[size];

        for (int i = 0; i < tmp.Length; i++)
        {
            data[i] = tmp[i];
        }
    }/*expand*/

    public void setData(int index, int data)
    {
        if (0 < index)
        {
            if (index > this.data.length) // ***error, does not contain definition for "lenght" and no exetension method "lenght"***
                expand(index);

            this.data[index - 1] = data;
        }
    }

    public override string ToString()
    {
        StringBuilder buf = new StringBuilder();
        for (int i = 0; i < data.Length; i++)
        {
            buf.Append("[" + i + "]");
            buf.Append(data[i]);
            buf.Append('\n');
        }
        return buf.ToString();
    }

}/*DynArray*/

}

2 个答案:

答案 0 :(得分:2)

.length更改为.Length

另外,更改“data”参数令人困惑的是同时使用成员数组和同一方法中的参数。

答案 1 :(得分:0)

this.data.length

查看文档,您将看到错误是正确的。 data是一个数组。数组没有属性“length”。没有拼写。 “长度”不是“长度”。

检查.NET的文档以找到正确的拼写或属性名称。