对于学校我需要创建一个程序,洗牌和划分一副牌。
我想从一个方法(void)中获取一个变量来返回。但是因为它在Void里面所以不能。但是如果我在Void之外创建它就会出错。因为它是变种。我从那个var做了一个列表。我是C#的新手。帮助将非常感激。
public static class Kaart
{
public static void Kaarten() {
string s = "";
string v = "";
string k = "";
string kaart = "";
var deck = new List<string>();
for (int x = 0; x < 4; x++)
{
switch (x)
{
case 0: s = "Harten"; break;
case 1: s = "Klaver"; break;
case 2: s = "Schoppen"; break;
case 3: s = "Ruiten"; break;
}
for (int y = 0; y < 13; y++)
{
switch (y)
{
case 0: v = "A"; break;
case 1: v = "2"; break;
case 2: v = "3"; break;
case 3: v = "4"; break;
case 4: v = "5"; break;
case 5: v = "6"; break;
case 6: v = "7"; break;
case 7: v = "8"; break;
case 8: v = "9"; break;
case 9: v = "10"; break;
case 10: v = "Boer"; break;
case 11: v = "Koningin"; break;
case 12: v = "Koning"; break;
}
kaart = k + " " + s + " " + v;
deck.Add(kaart);
}
Shuffle(deck);
}
}
public static Shuffle(List<string> deck)
{
Random rng = new Random();
//Shuffled het deck;
var shuffledDeck = deck.OrderBy(a => rng.Next()).ToList();
return shuffledDeck;
}
}
使用此代码,Shuffle会给出一个他没有回复的错误。我真的不知道该怎么做了
您已经定义了Shuffle
方法,如下所示:
public static Shuffle(List<string> deck)
在C#中,方法需要具有在方法名称之前的返回类型。将声明更改为:
public static List<string> Shuffle(List<string> deck)
此外,您可能想要创建一个表示Card
的简单类:
public class Card
{
public Card(int color, int val)
{
Color = color;
Value = val;
}
public int Color { get; }
public int Value { get; }
// That might look nicer in the debugger (with less code).
public override string ToString()
{
return "♥♣♦♠"[Color] + "A23456789TNQK"[Value];
}
}
而且我不确定,如果你的课程也是(有点)关于面向对象,但你可能想要实现静态方法Card.GetDeck()
返回一个列表(或数组)的卡片。