(私の下手な英語のため申し訳ありませんまず、)
コールは
を交換するとき、私はポーカーのカードゲームをしようとしたC#で動作しません。
コードは関数がデッキをシャッフルbelow.Thoseとして、
参照によって呼び出すようだが、最終的には動作しません。
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