标题:C#入门精典中的一个例子看不懂请帮助小弟!!
取消只看楼主
陈新建
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-10-17
 问题点数:0 回复次数:0 
C#入门精典中的一个例子看不懂请帮助小弟!!
Card类:
程序代码:
public class Card
{
      public readonly Suit suit;
      public readonly Rank rank;
      public override string ToString()
      {
         return "The " + rank + " of " + suit + "s";
      }
      private Card()
      {
      }
      public Card(Suit newSuit, Rank newRank)
      {
         suit = newSuit;
         rank = newRank;
      }
}


Deck类:
程序代码:
public class Deck
{           
    public Deck()
    {
        cards = new Card[52];
        for (int suitVal = 0; suitVal < 4; suitVal++)
        {
            for (int rankVal = 1; rankVal < 14; rankVal++)
            {
                cards[suitVal * 13 + rankVal -1] = new Card((Suit)suitVal,(Rank)rankVal);
            }
        }
    }

    private Card[] cards;

    public Card GetCard(int cardNum)
    {
        if (cardNum >= 0 && cardNum <= 51)
        return cards[cardNum];
    }
}


控制台程序入口:
程序代码:
static void Main(string[] args)
{
    Deck myDeck = new Deck();
    myDeck.Shuffle();
    for (int i = 0; i < 52; i++)
    {
        Card tempCard = myDeck.GetCard(i);
        Console.Write(tempCard.ToString());
        if (i != 51)
        Console.Write(", ");
        else
        Console.WriteLine();
    }
}


我有两个问题:
一,我不明白其中Deck类的字段为什么可以这样定义private card[] cards?
二,为什么可以直接调用Card类中的重写的ToString方法?
搜索更多相关主题的帖子: 例子 入门 精典 
2008-10-17 11:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-238799-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.326899 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved