2013-03-03 3 views
2

문제는 책 끝에이 질문에 제공된 솔루션을 언급 한 사람을위한 것입니다. 이 장의 마지막 부분에서 설명한대로 Ch10CardLib을 설정했습니다. shuffled 데크를 표시하는 포함 된 클라이언트 콘솔 응용 프로그램을 실행해도 아무런 문제가 없습니다.Watson 외 : Beginning Visual C# 10 장 연습 5

내가 다음 줄에 오류 메시지를 얻기 위해 제공하는 솔루션을 실행 한

:

Suit flushSuit = playDeck.GetCard(hand * 5).suit; 

는 "오류 1 'Ch10CardLib.Card은'소송 '없이 확장 방법에 대한 정의를 포함하지 않습니다 유형 'Ch10CardLib.Card'의 첫 번째 인수를 받아들이는 '소송'볼 수 있습니다 "소송을한다"

"벌"이 열거 형이지만, "(당신은? using 지시문 또는 어셈블리 참조가 누락되었습니다) Card 클래스의 private 읽기 전용 필드.

누구나 저자의 의도를 여기에서 다룰 수 있습니까?

public Suit Suit() 
{ 
    return suit; 
} 

Suit flushSuit = playDeck.GetCard(hand * 5).Suit(); 

이 원하는 결과를 생성하지만 문맥의 정신이다 : 나는 카드 클래스의 메소드를 포함하기로 결정 그냥 "재미"에 대한

?

답변

4

구문 오류입니다. 책의 코드가 컴파일되지 않으면 (나는 책의 사본이 없다), 그것은 당신의 잘못이 아니다.

public Suit Suit 
{ 
    get { return suit; } 
} 

아마 당신은 자동 속성에 대한 민간 읽기 전용 필드를 교환 할 수 : 아마 읽기 전용 특성이 아닌 방법으로 노출 된 것이지만 당신의 수정은 나에게 완벽하게 합리적인 보인다?

public Suit Suit { get; private set; } 
+0

감사합니다. 훨씬 좋은 생각입니다. 이상하게도이 텍스트는 Microsoft에서 권장했지만 University text로 사용되지 않았거나 확실하게 선택되었을 것입니다. –

+0

@LaurieStearn, 걱정할 필요가 없습니다. 스택 오버플로에 오신 것을 환영합니다 :) –

관련 문제