2017-05-06 6 views
-2

저는 초보자이고 Main의 생성자에서 Console.Write() 배열을 찾으려고합니다. ToString()을 Console.Write()로 재정의하려고합니다. int 배열을 문자열로 사용하지만 실습 방법을 찾지 못했습니다.배열을 사용하여 생성자에서 객체 만들기

namespace Z1 
{ 
class List 
{ 


    public List(int b) 
    { 
    int[] tabb = new int[b]; 
    Random r1 = new Random(); 
    for(int i=0;i<b;i++) 
    { 
     tabb [i] =r1.Next(0, 100); 
    } 
    } 

    public List() 
    { 
    Random r2 = new Random(); 
    int rInt1=r2.Next(0,10); 
    int[] tabc = new int[rInt1]; 
    Random r3 = new Random(); 
    for(int i=0;i<rInt1;i++){ 
     tabc [i] = r3.Next(0,100); 

    } 
    } 
} 

class Program 
{ 
    static void Main() 
    { 
     List l1 = new List(10); 
     List l2 = new List(); 
     Console.WriteLine(l1.ToString()); 
     Console.WriteLine(l2.ToString()); 

    } 
} 

}

+0

"ToString을 C#에서 오버라이드하는 방법"을 시도 했습니까? – Abion47

답변

0

당신은 단지 배열을 인쇄 할 수 없습니다, 당신은 개별적으로 각각의 값을 출력해야합니다. 그냥 Console.WriteLine(); 대신이 방법을 사용해보십시오. 또한이 두 배열은 using LINQ;

l1.ToList().ForEach(Console.WriteLine); 
l2.ToList().ForEach(Console.WriteLine); 
1

변경하려면 우선이 클래스의 상단에 있는지 확인하십시오. 그것들은 지역 변수이며 생성자를 종료 할 때 단순히 폐기되고 더 이상 사용할 수 없습니다. 사용자가 지정한 크기 또는 1에서 10 사이의 임의의 크기로 만들 수있는 하나의 배열을 원한다고 생각합니다.

마지막으로 ToString()을 일반적인 방법으로 재정의하고 배열

class List 
{ 
    static Random r1 = new Random(); 
    private int[] tabb; 

    public List(int b) 
    { 
     tabb = new int[b]; 
     for (int i = 0; i < b; i++) 
      tabb[i] = r1.Next(0, 100); 
    } 
    // This constructor calls the first one with a random number between 1 and 10 
    public List(): this(r1.Next(1,11)) 
    { } 

    public override string ToString() 
    { 
     return string.Join(",", tabb); 
    } 
} 

이제 기본 방법에서 예상되는 결과를 얻을 수 있습니다.

부수적으로, 이것은 단지 테스트 프로그램이므로 많은 관심사는 아니지만 실제 프로그램에서는 프레임 워크에 정의 된 클래스와 충돌하는 이름을 가진 클래스를 작성하지 않는 것이 좋습니다. 이름, 목록, 작업, 대기열 등을 피하는 것이 더 좋습니다 ...

관련 문제