C#扑克游戏:没有给出响应所需形式参数的参数

本文关键字:参数 响应 游戏 扑克 | 更新日期: 2023-09-27 18:24:44

我正在使用C#制作一个扑克游戏,该游戏随机生成一手牌给玩家,然后检查是否有任何组合,并确定获胜者。

在我的生成玩家手牌的玩家类中,当我将鼠标悬停在"玩家"上时,我收到一个错误,说"没有给出任何参数来响应Card.Card(Card.Suit,Card.Number)的所需形式参数",尽管我已经研究过了,但到目前为止还无法解决这个问题。

这是代码:

class Player : Card
{
    Deck PlayerDeck = new Deck();
    public List<Card> hand = new List<Card>();
    public void GenerateHand()
    {
        for (int i = 0; i < 5; i++)
        {
            Card c = PlayerDeck.RandomCard();
            hand.Add(c);
            PlayerDeck.deck.Remove(c);
        }
    } 

以及卡类(如果需要):

class Card
{
    public enum Combination
    {
        None, Flush, StraightFlush, Poker,
        ThreeKind, FullHouse, TwoPairs, Pair
    }
    public enum Suit
    {
        Spades, Hearts, Clubs, Diamonds
    }
    public enum Number : int
    {
        Ace = 1, Two, Three, Four, Five, Six, Seven,
        Eight, Nine, Ten, Jack, Queen, King
    }
    public Suit suit;
    public Number number;
    public Card(Suit s, Number n)
    {
        suit = s;
        number = n;
    }
}

谢谢你的帮助。

C#扑克游戏:没有给出响应所需形式参数的参数

从Player的类定义中删除: Card。玩家在逻辑上不是一张牌,所以继承是没有意义的。

为了创建从另一个类继承的类的实例,必须首先调用基类的构造函数。在这种情况下,Card的唯一构造函数接受两个参数。但您还没有为Player定义任何调用Card构造函数的构造函数。在这种情况下,编译器会为Card寻找一个默认(无参数)构造函数,但该构造函数不存在,因此会出现错误。