Microsoft MVP성태의 닷넷 이야기
안녕하세요. C# 6.0 책을 보는 중에 의문이 생겨 질문드립니다. [링크 복사], [링크+제목 복사],
조회: 17786
글쓴 사람
재현 (cjh7163 at naver.com)
홈페이지
첨부 파일
 
(연관된 글이 2개 있습니다.)

안녕하세요.
C# 6.0 책을 예약구매하고 며칠전에 받아서 시간날때마다 틈틈이 보고있는 학생입니다.
4장(p.223)에서 IEnumerable 인터페이스 구현하는 소스코드를 보고 작성해보았는데
오류가 있는 것 같아 질문드립니다.

먼저, Notebook 클래스 안에 중첩클래스로 USBEnumerator 클래스가 선언되어 있는데
MoveNext() 메서드를 보면 인스턴스 필드인 length와 pos를 비교하는 부분이 있는데,
length는 처음에 0으로 초기화 시킨 후에 값을 설정하는 코드가 없습니다.
이것은 생성자에서 length에 list.Length 를 대입하여 해결하였습니다.

또, MoveNext() 메서드에 보면 비교를 하고 pos값을 증가 시키는데, usbList 배열의 요소가
2개일 경우에는 정상적으로 출력이 되나, 3개 이상일 경우 제대로 출력이 안되는 문제가 있습니다.
이것도 위의 length값의 문제인 것 같은데 length값을 수정한 뒤에도 조건문이 잘못되어
오류가 발생합니다.

저는 MoveNext() 메서드를 아래와 같이 바꾸어서 해결하였습니다.

pos++;
return (pos < length);

정오표도 확인해봤는데 없는 것 같아 글 올립니다.


[연관 글]






[최초 등록일: ]
[최종 수정일: 8/8/2015]


비밀번호

댓글 작성자
 



2015-08-09 05시17분
[재현] p.246에 오타가 있네요
switch 문 부분
switch(operator) -> switch(opType)이 맞을 듯 합니다.
[guest]
2015-08-09 02시23분
실행 결과 2개의 USB 문자열 항목이 출력되는 것을 보고 제대로 되었다고 생각하고선 넘어가 버린 어이없는 실수를 제가 해버렸군요. ^^; 오류 보고 감사드립니다. 말씀하신 부분은 정오표 - "http://www.sysnet.pe.kr/2/0/2923"에 추가했습니다. 단지 제안해 주신 소스코드로는 수정하지 않고 원문의 의도에 맞게 했습니다. 왜냐하면 제안해 주신 소스코드에서는 pos의 값이 MoveNext를 호출할 때마다 계속 증가하기 때문입니다.

246페이지 코드도 함께 정오표에 올렸습니다.
정성태
2015-08-09 03시56분
[재현] 확인했습니다! ^^
중요한건 아니지만 제 이름은 채현이 아니라 재현입니다. 하하..
[guest]
2015-08-10 12시46분
이름을 보고 '채연'을 연상하는 바람에 '현'자만 고치고 '재'자를 안 고쳐 올렸군요. ^^;;;
정성태

1  2  3  4  5  6  [7]  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5781List맨1/5/20233810List.Add("newobj") 속도는 빠른 편인지요? [11]
5780임세1/3/20234414C# 프로그래밍 10 책 구매한 사람입니다. 3부 자료는 어디서 다운 받을 수 있나요? [4]
5779이건우1/2/20233289안녕하십니까 루프안에서 메세지처리에 관하여 질문드립니다! [2]
5778이건우12/30/20224571안녕하세요 c#에서 dll참조 관련 질문드립니다. [4]
5777감사합니...12/29/20223563UI Thread에 Invoke 처리관련 궁금합니다. [3]
5776pdf맨12/28/20223357C# MouseUp Event + pdf [10]
5775민성12/28/20223142안녕하세요 Class 관련해서 예외처리를 하나로 받아낼수 있는 방법 [1]
5774중급12/27/20223935중급개발자란 어느 수준인지요? [4]
5773김영식12/26/20223465c# 압축파일 읽어 올 때 BinaryRead 한글 처리 문제 [1]
5772눈송이12/26/20223596Excel VSTO 는 왜 Net Core, Net 5, 6 버전을 사용하지 않나요? [2]
5771김훈12/26/20223711c# .net client application 망분리(내부망,외부망) 환경에서 의문의 외부사이트 호출 대기 [2]
5770lsh12/26/20223308클라우디움안에 있는 파일을 File.Copy 하고싶은데 코드로는 접근을 못하나요? [1]
5769울타리12/20/20223343Active Directory 2012R2 2016 또는 2019 마이그렝션 문의 드립니다. [1]
5768c++12/14/20224098Thread를 사용한 C++ DLL에 관련된 질문입니다. [6]파일 다운로드2
5767민성12/9/20223458안녕하세요 ashx로 화일을 저장하고 화일명을 리턴하는데요 [1]
5766김명훈12/9/20223594웹브라우저에서 묻지 않고 바로 다운로드 [2]
5765hong12/1/20223839Winform(.Net6) 클라이언트에서 SignalR Core 웹서버에 접속시 인증서 문제 [3]파일 다운로드1
5764요한11/30/20224039c++ 동일한 객체인지 비교 방법문의 [2]
5763고필석11/30/20223558시작하자마자 비정상 종료하는 프로세스에 대한 문제 해결 조언 요청 드립니다. [3]
5762흰털너부리11/30/20223544wpf mvvm ui update 로딩중 표시 [1]
5761민성11/29/20223441죄송하지만 한가지만 더 여쭈어 보겠습니다 [1]
5760민성11/29/20223363안녕하세요 [2]
5759문정환11/28/20223714c# socket 통신할때 빅엔디언으로 바꿔줘야 하나요? [1]
5758라떼11/28/20224913Linux 에서 winform UI 어플리케이션 실행하기 [3]
5757흰털너부리11/25/20223869asp.net core EF AddDbContext,AddDbContextFactory 차이점 알려주세요 [1]
5756흰털너부리11/25/20223441asp.net core web api에서 json 특정 property 무시하는 방법 문의 드립니다. System.Text.Json 사용중입니다. [1]
1  2  3  4  5  6  [7]  8  9  10  11  12  13  14  15  ...