(Vor allem, sorry für mein schlechtes Englisch) Swapping
Anruf durch Verweis funktioniert nicht in C#, wenn
ich ein Poker-Kartenspiel zu machen versuche.
Wie die Codes unten. Diese Funktionen mischen das Deck,
es scheint Anruf per Referenz, aber schließlich funktioniert es nicht.
private void disorderCards(PokerCardItem[] cardArray)
{
Random random = new Random();
for (int t = 0; t < 10; t ++)
for (int i = 0; i < cardArray.Length; i ++)
swapTwoCards(cardArray[i], cardArray[random.Next() % cardArray.Length]);
}
private void swapTwoCards(PokerCardItem cardA , PokerCardItem cardB)
{
PokerCardItem temp = cardA;
cardA = cardB;
cardB = temp;
}
aber wenn ich so schreibe, wird es funktionieren:
private void disorderCards(PokerCardItem[] cardArray)
{
Random random = new Random();
for (int i = 0; i < cardArray.Length; i ++)
{
int n = random.Next() % cardArray.Length;
PokerCardItem temp = cardArray[i];
cardArray[i] = cardArray[n];
cardArray[n] = temp;
}
}
Was ist los ?? Danke!
C# übergibt standardmäßig Argumente nach Wert. Wenn Sie sie als Referenz übergeben möchten, müssen Sie dies explizit mit 'ref' oder' out' angeben. – InBetween