2013-06-18 3 views
1

클래스가 Measurement입니다.C# : 생성자 매개 변수가있는 Object Array

이 클래스 내에 생성자가 있습니다. as :

class Measurement 
    { 
     public Measurement(MainWindow mainWindow) 
     { 
      .... 
     } 
} 

어떻게 MainWindow 매개 변수로 8 개 개체의 배열을 만들 수 있습니까?

Measurement[] measurements= new Measurement[8](mainWin); 
+2

그리고 "새로운 측정 [8] (mainWin)"이 무엇을 기대합니까? – Yogee

+0

다른 속성을 가진 8 개의 도면이 있습니다 – user2261524

답변

13

당신이 사용할 수있는 LINQ :

var measurements = new[] { 
    new Measurements(mainWin), new Measurements(mainWin), 
    new Measurements(mainWin), new Measurements(mainWin), 
    new Measurements(mainWin), new Measurements(mainWin), 
    new Measurements(mainWin), new Measurements(mainWin) 
}; 
+0

완벽한 답변 :) – user2261524

+0

@ user2261524 당신이 말한대로 완벽한 대답이라면 "올바른"것으로 표시해야합니다. –

2
Measurement[] measurements= new Measurement[8]; 

for(int i = 0; i < measurements.Length; i++) 
{ 
    measurements[i] = new Measurement(mainWin); 
} 
13

:

var measurements = Enumerable.Range(0, 8).Select(i => new Measurement(mainWin)).ToArray(); 

두 번째 방법은 배열 초기화 구문을 사용하는 것입니다 내 코드 어딘가에처럼

단일 참조가 8 배인 배열을 원하나요? 또는 8 별도Measurement 개체가 있습니까? 처음 들어

: 들어

var measurements = Enumerable.Repeat(new Measurement(mainWin), 8).ToArray(); 

두 번째 :.

var measurements = Enumerable.Range(0, 8) 
          .Select(_ => new Measurement(mainWin)) 
          .ToArray(); 

(또는 물론, 루프로 채우 다음 요소를 초기화하지 않고 배열을 만들 그것은 문제입니다)

+0

두 가지 방법의 동작을 지적하는 데는 도움이되지만 어떤 상황에서 동일한 개체에 대한 8 개 (또는 모든 숫자) 배열의 배열을 원할 수 있습니까? 아니면'MainWindow'가 여러 번 참조되는 객체라는 것을 의미합니까? '측정'의 8 개의 개별 인스턴스가 실제로 존재합니까? – musefan

+0

코드에서'_'을 설명 할 수 있습니까? –

+1

@BhushanFirake 익명 메소드의 매개 변수 이름입니다. 이 경우에는 'Range'에 대한 호출 번호. 사용되지 않는 변수의 이름으로'_'을 사용하는 것은 일반적인 관습입니다. – Servy

3

(Enumerable.Repeat을 사용하여)

var measurements = Enumerable.Repeat(new Measurement(mainWin), 8).ToArray(); 

인용구 :

반복 한 값을 포함하는 시퀀스를 생성한다.

+1

이렇게하면 8이 아니라 1 측정 개체 만 생성됩니다. 이는 바람직하지 않습니다. – Servy

+0

예. 그러나 모두가 이미 배열을 채우는 올바른 방법에 대답했기 때문에 이것을 덧붙이는 느낌이 들었습니다. 답안에 포함 된 링크에서 견적을 추가했습니다. 감사. –

+0

몇 가지 올바른 방법이 추가 되었기 때문에 잘못된 방법을 추가하기로 결정 했습니까? 그건 정말 말이되지 않습니다. 모든 독자가이 객체에 대한 참조를 반복하고 생성자에 대한 호출을 반복하지 않는다는 것이 명확하지 않을 수 있습니다. – Servy

관련 문제