1
我一直在教自己C#(没有C++或Java),一个制作精致的扑克手解析器的项目上工作了一周。我终于投入并发布了我的第一个简单问题。c#声明一个变量作为参数,新手问题
我想我已经看到了各种方式的变量声明(新的VB/A体验)。以下是我想要做的一般想法。
public class CompareHandsClass : IComparer<clHiHand>
...
public class clCardsHeld
{
protected List<clCard> _liCards = new List<clCard>();
public clCardsHeld(List<clCard> CardsList)
{ _liCards = CardsList;
}
...
public class clHiHand : clCardsHeld
{
public clHiHand(List<clCard> CardsList) : base(CardsList) {}
List<clCard> _liTempCards;
CompareHandsClass HandComparer = new CompareHandsClass();
...
if (_liTempCards.Count >= 5
&& HandComparer.Compare(clHiHand x = new clHiHand(_liTempCards),
clHiHand y = new clHiHand(_liFlushCards)))
所以我的问题是下来与HandComparer.Compare结束。我有两个我的clCard类型的列表,但我不能将它们发送到.Compare(),因为它需要clHiHand对象。所以我试图将列表作为参数一次性发送给临时clHiHand类型变量的构造函数。我可以做到这一点不能(除了使用几行声明)?感谢任何初学者的帮助(我有点失望,我被困在所有地方的这个小东西......)
哦,PS,我希望我没有搞砸在这个示例代码中的其他任何东西,因为我从这些扩展的最后工作版本中离开了。
那么你是说你有一个clHiHand比较器,你想用它来比较clCard类型?除非你的clCard类型是clHiHand的子类,那么你不能这样做。这就像使用字符串比较器来比较整数。 clCard和clHiHand之间必须有关系。 – Joe 2011-02-15 05:44:26
按照Ken的建议,您可以将_liTempCards和_LiFlushCards投射到clHiHand上。 – sajoshi 2011-02-15 06:36:17