我的程序的最后一点有点麻烦。 我不太确定如何计算数组中的整数。 到目前为止,这是我的代码:
class Tester
{
static void Main(string[] args)
{
Card[] hand = {
new Card("Spade", 3),
new Card("Club", 10),
new Card("Diamond", 11),
new Card("Heart", 9),
new Card("Diamond", 13),
};
ProcessHand(hand);
}//end of static void main
static void ProcessHand(Card[] cards)
{
cards[0].DisplayCard();
cards[1].DisplayCard();
cards[2].DisplayCard();
cards[3].DisplayCard();
cards[4].DisplayCard();
}//end of static void processhand
}//end of class Tester
class Card
{
public string suit { get; set; }
public int facevalue { get; set; }
public Card (string su, int fa)
{
suit = su;
facevalue = fa;
}
public int Sum(params int[] facevalue)// <- trying to calculate sum of facevalues of cards.
{
return facevalue.Sum();
}
public void DisplayCard()
{
Console.WriteLine("The card is {0,-10} {1,-10}", suit, facevalue);
}
}//end of class Card
我对首先将代码放在哪里感到有点困惑,因为我正试图将它放在类 Card 中。我在两个类中尝试了我所知道的一切的不同变体,但似乎没有任何效果。我只是想将顶部显示的卡片的所有面值相加,然后使用 console.writeline 显示总值。
任何帮助将不胜感激!谢谢:)
最佳答案
您可以改为这样做,删除类 Card 上的 Sum 函数,并将其作为静态函数放在 static void Main 下:
private static void Main(string[] args)
{
Card[] hand =
{
new Card("Spade", 3),
new Card("Club", 10),
new Card("Diamond", 11),
new Card("Heart", 9),
new Card("Diamond", 13),
};
ProcessHand(hand);
Console.WriteLine(Sum(hand.Select(x=>x.facevalue).ToArray()));
}
static int Sum(params int[] facevalue)// <- trying to calculate sum of facevalues of cards.
{
return facevalue.Sum();
}
我在你的类之外删除了这个 Sum 函数,因为你正在创建一个类的实例,如果你正在计算不同的类实例,这将没有意义。因此,宁愿把它作为静态函数,而不是你可以从那里计算。
关于c#计算数组内的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43772522/