2013-03-03 68 views
2

問題在於任何人在本書最後都提到了爲這個問題提供的解決方案。 我已經設置了本章最後概述的Ch10CardLib。運行包含客戶端控制檯應用程序顯示一個洗牌甲板是沒有問題的。Watson等人:開始Visual C#第10章練習5

我已經運行提供到上下面的行獲得的錯誤信息的解決方案:

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

「錯誤1‘Ch10CardLib.Card’不包含關於‘套裝’和無擴展方法的定義「套裝」接受類型「Ch10CardLib.Card」的第一個參數可以找到(是否缺少using指令或程序集引用?)」

‘衣服’是枚舉類型,但‘套裝’被卡類中的私人只讀字段。

任何人都可以在這裏推薦作者的意圖嗎?

只是爲了「好玩」我決定在卡類的方法:

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

謝謝,這是一個更好的主意。奇怪的是,這個文本是由微軟推薦的,但沒有用作大學文本,或者肯定會在之前被挑選出來...... – 2013-03-03 15:49:30

+0

@LaurieStearn,不用擔心。歡迎來到Stack Overflow :) – 2013-03-03 18:31:37