Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#将变量声明为参数,新手问题 我在一个项目上做了一周的教学,我在做一个复杂的扑克手分析器的项目上,用C语言(没有C++或java)来教。我终于屈服了,发布了我的第一个简单问题_C# - Fatal编程技术网

c#将变量声明为参数,新手问题 我在一个项目上做了一周的教学,我在做一个复杂的扑克手分析器的项目上,用C语言(没有C++或java)来教。我终于屈服了,发布了我的第一个简单问题

c#将变量声明为参数,新手问题 我在一个项目上做了一周的教学,我在做一个复杂的扑克手分析器的项目上,用C语言(没有C++或java)来教。我终于屈服了,发布了我的第一个简单问题,c#,C#,我想我已经以各种方式看到了变量声明(对于我的VB/A经验来说是新的)。这是我想做的大致想法 public class CompareHandsClass : IComparer<clHiHand> 公共类比较类和类:IComparer 公共类clCardsHeld { 受保护列表_liCards=新列表(); 公共clCardsHeld(列表卡片列表) {u liCards=CardsList; } 公共类clHiHand:clCardsHeld { public c

我想我已经以各种方式看到了变量声明(对于我的VB/A经验来说是新的)。这是我想做的大致想法

public class CompareHandsClass : IComparer<clHiHand>
公共类比较类和类:IComparer

公共类clCardsHeld
{   
受保护列表_liCards=新列表();
公共clCardsHeld(列表卡片列表)
{u liCards=CardsList;
}

公共类clHiHand:clCardsHeld
{
public clHiHand(列表CardsList):基本(CardsList){}
列表卡;
CompareHandsClass HandComparer=新的CompareHandsClass();
...
如果(_liTempCards.Count>=5
&&比较(clHiHand x=新的clHiHand(_liTempCards),
clHiHand y=新clHiHand(_liFlushCards)))
最后我的问题是HandComparer.Compare。我有两个clCard类型的列表,但我无法将它们发送到.Compare(),因为这需要clHiHand对象。所以我尝试将列表作为参数一次性发送给临时clHiHand类型变量的构造函数。我可以这样做,但我不能吗(除了使用几行声明之外)?感谢所有初学者的帮助(我有点失望,我在所有地方都被这个小东西难住了…)


哦,还有,PS,我希望我没有把这个示例代码中的其他内容弄糟,因为我已经用这些扩展摆脱了上一个工作版本。

您可能会丢失
clHiHand x
clHiHand y
。然后调用看起来像

HandComparer.Compare(new clHiHand(_liTempCards), new clHiHand(_liFlushCards))

你是说你有一个clHiHand比较器,你想用它来比较clCard类型吗?除非你的clCard类型是clHiHand的子类,否则你不能这样做。这就像用字符串比较器来比较整数一样。clCard和clHiHand之间必须有一个关系。你可以将_liTempCards和_LiFlushCards作为K强制转换到clHiHand他建议道。
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(new clHiHand(_liTempCards), new clHiHand(_liFlushCards))