我知道我聽起來像一個糟糕的程序員現在 - 但我是新的,我不知道如何使用這個參考事物和傳遞參數,我的意思是我知道如何去做 - 但在同一時間 - 這是行不通的,我不知道爲什麼。C#簡單傳遞參數問題
static void Main(string[] args) {
DealCard(ref card);
Console.WriteLine();
Console.ReadLine();
}
private static void DealCard(string card) {
string finalNum = "";
string finalSuite = "";
bool diffCard = false;
do {
Random cardPicker = new Random();
int cardSuite = cardPicker.Next(1, 5);
if (cardSuite == 1) {
finalSuite = "Hearts";
} else if (cardSuite == 2) {
finalSuite = "Spades";
} else if (cardSuite == 3) {
finalSuite = "Clubs";
} else if (cardSuite == 4) {
finalSuite = "Diamonds";
}
int cardNum = cardPicker.Next(1, 14);
if (cardNum == 1) {
finalNum = "Ace";
} else if (cardNum == 2) {
finalNum = "Two";
} else if (cardNum == 3) {
finalNum = "Thre";
} else if (cardNum == 4) {
finalNum = "Four";
} else if (cardNum == 5) {
finalNum = "Five";
} else if (cardNum == 6) {
finalNum = "Six";
} else if (cardNum == 7) {
finalNum = "Seven";
} else if (cardNum == 8) {
finalNum = "Eight";
} else if (cardNum == 9) {
finalNum = "Nine";
} else if (cardNum == 10) {
finalNum = "Ten";
} else if (cardNum == 11) {
finalNum = "Jack";
} else if (cardNum == 12) {
finalNum = "Queen";
} else if (cardNum == 13) {
finalNum = "King";
}
string newCard = finalNum + " of " + finalSuite;
if (newCard != card) {
card = finalNum + " of " + finalSuite;
diffCard = true;
} else {
}
card = newCard;
} while (diffCard == false);
}
是的我知道大量'如果'是一個眼睛。 是的,我知道我可以在不到一半的條件下完成這項工作。 是的,我知道這是一個簡單的問題。 是的我知道我很糟糕,但我想虛心請求任何人幫助我停止失去頭髮。
你不需要這樣的:'DealCard(REF卡) ;'因爲這會起作用:'DealCard(card);'但是,如果你有意使用'ref'並且你確切地知道爲什麼,那是不同的情況。 – CodingYoshi
我知道你特別要求不要因爲大量的失敗而失去頭腦。但是,我只想爲您提供簡單的替代解決方案:使用字典。鍵將是數字,值字符串。然後,您可以用cardValuesDict [cardNumber] – netchkin
替換整個卡片,然後在調用「DealCard」之前聲明'var card =「」;「。 – aaron