【问题标题】:Error CS1501: No overload for method `NewDeck' takes `0' arguments (CS1501)错误 CS1501:方法“NewDeck”没有重载采用“0”参数(CS1501)
【发布时间】:2013-03-17 22:43:44
【问题描述】:

我正在尝试创建一个函数来创建一组卡片 可以随机输入到列表中,但尽管研究了解决方案 当我打电话给我时,我无法弄清楚我需要在括号中放置什么 函数,以及当我返回它的变量时。

using System;
using System.Collections.Generic;
using System.Text;

namespace BlackJackGameX
{
    public class Deck
    {
        Random rNumber = new Random();

        List<Card> Cards;
        List<Card> ShuffledDeck;

        public int iValue1 = 11;
        public int iValue2 = 2;
        public int iValue3 = 3;
        public int iValue4 = 4;
        public int iValue5 = 5;
        public int iValue6 = 6;
        public int iValue7 = 7;
        public int iValue8 = 8;
        public int iValue9 = 9;
        public int iValue10 = 10;
        public int iValue11 = 10;
        public int iValue12 = 10;
        public int iValue13 = 10;

我不知道我需要在 NewDeck 括号中放什么。

        public Deck()
        {
            Cards = NewDeck();
        }

        public void Shuffle()
        {

            for (int i = 0; i <= 51; ++i) 
            {
                int c = rNumber.Next (1, 53);

                ShuffledDeck.Add(Cards[c]);
            }
        }

        private List<Card> NewDeck(Suit CardSuit, FaceValue CardValue, int iValue)
        {
            var AllSuits = new Suit[]
            {
                Suit.Spades,
                Suit.Hearts,
                Suit.Clubs,
                Suit.Diamonds
            };

            var AllFaces = new FaceValue[]
            {
                FaceValue.Ace,
                FaceValue.Two,
                FaceValue.Three,
                FaceValue.Four,
                FaceValue.Five,
                FaceValue.Six,
                FaceValue.Seven,
                FaceValue.Eight,
                FaceValue.Nine,
                FaceValue.Ten,
                FaceValue.Jack,
                FaceValue.Queen,
                FaceValue.King
            };

            var AllValues = new int[]
            {
                iValue1,
                iValue2,
                iValue3,
                iValue4,
                iValue5,
                iValue6,
                iValue7,
                iValue8,
                iValue9,
                iValue10,
                iValue11,
                iValue12,
                iValue13
            };

            for (int i = 0; i <= 3; i++) 
            {
                for (int j = 0; j <= 12; j++) 
                {
                    Card newCard = new Card(AllSuits[i], AllFaces[j], AllValues[j]);
                }
            }

我不知道我需要在 NewDeck 括号中放什么

            return NewDeck ();
        }

        public void Print()
        {
            Console.WriteLine(ShuffledDeck[1].CardValue);
            Console.ReadLine();
        }
    }
}

【问题讨论】:

  • 您似乎没有使用 cardsuit、cardvalue 和 ivalue 参数,请考虑将它们从 newDeck 函数声明中删除。
  • 太棒了:]

标签: c#


【解决方案1】:

因为有问题的方法的签名是:

private List<Card> NewDeck(Suit CardSuit, FaceValue CardValue, int iValue)

您需要传入如下值:

return NewDeck(Suit.Spades, FaceValue.Ace, iValue1);

正如 Oren 所说,在 NewDeck 方法中您不使用这些值。有这样的签名也应该没问题:

private List<Card> NewDeck()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多