【发布时间】:2015-07-02 11:39:51
【问题描述】:
我想这是个愚蠢的问题,但如果你可以看看
这是我的方法
public Tuple CheckRoyalFlush()
{
List<Honours> flush = new List<Honours>()
{
Honours.Ace,
Honours.King,
Honours.Queen,
Honours.Jack,
Honours.Ten
};
if (RoyalFlushJokerHelper(honoursOnTheScreen, flush) || ContainsAllItems(honoursOnTheScreen, flush))
{
Suits suit = cardsOnTheScreen.ElementAt(0).GetSuit();
foreach (Card card in cardsOnTheScreen.Skip(1))
{
if (card.GetSuit() != suit)
{
if (card.GetHonour() == Honours.Joker)
continue;
else
return new Tuple(false, null);
}
}
return new Tuple(true, new List<int> { 0, 1, 2, 3, 4 });
}
问题是当我检查我的“If”时,我进入了第一个方法“RoyalFlushJokerHelper”,然后我从刷新列表中删除了我的所有 5 个项目。
然后问题是当我进入 ContainAllItems 方法时,我的刷新列表为空。
我没有通过引用传递它,那么为什么第一种方法会更改我的原始列表?
【问题讨论】:
-
是什么让你相信你没有通过参考传递它?