在一个制作精心设计的扑克手分析器的项目中,我已经工作了一周,自学C#(没有C ++或Java)。我终于开始尝试并发布我的第一个简单问题了。
我认为我已经以各种方式看到了变量声明(我的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,我希望我没有弄乱这个示例代码中的任何其他内容,因为我已经离开了上一个使用这些扩展的工作版本。
答案 0 :(得分:0)
您可能会丢失clHiHand x
和clHiHand y
。然后呼叫看起来像
HandComparer.Compare(new clHiHand(_liTempCards), new clHiHand(_liFlushCards))