问题是任何在本书末尾提到为此问题提供的解决方案的人。 我已经按照本章末尾的概述设置了Ch10CardLib。运行包含显示洗牌的套件的客户端控制台应用程序是没有问题的。
我运行了提供的解决方案,以便在以下行中获取错误消息:
Suit flushSuit = playDeck.GetCard(hand * 5).suit;
“错误1”Ch10CardLib.Card'不包含'suit'的定义,并且没有扩展方法'suit'接受类型'Ch10CardLib.Card'的第一个参数可以找到(你是否错过了使用指令或者汇编参考?)“
“Suit”是枚举类型,但“suit”是Card类中的私有只读字段。
有人可以在这里认定作者的意图吗?
为了“有趣”,我决定在Card类中包含一个方法:
public Suit Suit()
{
return suit;
}
Suit flushSuit = playDeck.GetCard(hand * 5).Suit();
这会产生预期的结果,但它是否符合上下文的精神?
答案 0 :(得分:4)
这是一个语法错误。如果书中的代码没有编译(我没有书的副本),那么这不是你的错。你的修复对我来说看起来非常合理,虽然我可能已将它作为readonly属性而不是方法公开:
public Suit Suit
{
get { return suit; }
}
也许您可以将私有只读字段替换为自动属性?
public Suit Suit { get; private set; }