Watson等人:开始Visual C#第10章练习5

时间:2013-03-03 13:34:54

标签: c#

问题是任何在本书末尾提到为此问题提供的解决方案的人。 我已经按照本章末尾的概述设置了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();

这会产生预期的结果,但它是否符合上下文的精神?

1 个答案:

答案 0 :(得分:4)

这是一个语法错误。如果书中的代码没有编译(我没有书的副本),那么这不是你的错。你的修复对我来说看起来非常合理,虽然我可能已将它作为readonly属性而不是方法公开:

public Suit Suit
{
    get { return suit; }
}

也许您可以将私有只读字段替换为自动属性?

public Suit Suit { get; private set; }