나는이 두 개의 문자열을 저장하고 그 문자열 중 하나를 반환하는 toString() 메서드를 오버라이드 (override) 객체C#으로 확인 목록 상자에 사용자 정의 개체를 추가
fooBar temp;
foreach (string foo in bar)
{
temp = new fooBar(); <--- Why is this line needed when I
am overwriting the code and path on each cycle before adding?
temp.code += ".";
temp.path += ".";
Console.WriteLine(temp);
clbFooBar.Items.Add(temp);
}
콘솔에 인쇄를 덮어 코드를 순종하고 경로 문자열 값을 반환하지만 체크 된 목록 상자 항목은 모두 정확히 똑같은 항목 (마지막 항목의 ToString())입니다. 어떤 기본적인 프로세스가 진행 중인지 즉시 알 수 없습니까?
내가 clbFooBar.Items.Add(temp.ToString());
로 변경이 절대적으로 잘 작동하지만 그 temp.ToString.ToString()
.Add
때문에 호출 처음에 .ToString()
으로 동일하지 않을 경우? 나는 두 콘솔 인쇄를 생각하고 모두
편집 ToString()
전화로 .Add
같은 보는 역할을합니다 : temp = new fooBar();
내 문제에 대한 수정 프로그램입니다, 난 그냥 직관 덮어 쓰기를 생각하는 날 리드 할 때이 수정이 왜 알고 싶어 두 문자열, 코드 및 경로가 충분해야하며이 다시 초기화가 없으면 체크 된 목록 상자의 모든 항목이 동일해야합니다.
'temp = new fooBar();'줄을 지우면 같은 것을 의미합니까? –
아니요, 콘솔 출력과 체크 된 목록 상자는 그 줄이 존재하는 경우에만 서로를 반영하므로 이해가되지 않습니다. – Bradley
당신의 체크리스트에있는 아이템들은이 라인이 존재하지 않는다면 똑같이 보이지만 그 라인이 존재한다면 (정확히) 다른 것입니까? –