(Прежде всего, извините за мой плохой английский)
Вызов по ссылке не работает в C# при замене
Я пытался сделать Poker Card Game.
Как указано ниже. Эти функции перетасовывают колоду,
Кажется, что вызов по ссылке, но, в конце концов, он не работает.
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;
}
, но если я пишу, как это, он получает работу:
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;
}
}
Что происходит ?? Спасибо!
C# передает аргументы по значению по умолчанию. Если вы хотите передать их по ссылке, вам нужно прямо сказать это с ключевыми словами 'ref' или' out'. – InBetween