2010-04-12 5 views
0

으로 변환했습니다. 다음 프로그램은 자바로 orignally했습니다. 하지만 난 여전히 C#에서 프로그램과 1 오류가 발생합니다.
(eror는 코드의 두 번째 블록에 주석으로 표시됩니다.)동적 배열 Java 프로그램을 C#

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

변경 .length 또한

.Length 위해, "데이터"로 변경이 갖는 파라미터 혼란 그 부재 어레이와 동일한 방법으로 두 파라미터 인.

0
this.data.length 

설명서를 살펴보면 오류가 올바른 것으로 나타납니다. 데이터는 배열입니다. 배열에는 "길이"속성이 없습니다. 맞춤법이 아닙니다. "길이"는 "길이"가 아닙니다.

.NET의 설명서를 확인하여 올바른 철자 또는 속성 이름을 찾으십시오.