为什么什么都没有传递给我的重载函数?
Why is nothing being passed to my overloaded function?
这里是第一张海报。首先,我使用 .NET 4.8 和 C#。我在重载函数方面遇到了一些问题,该函数似乎没有获得任何参数输入。基本上我的函数试图做的是获取单个对象或对象列表(所有自定义 class 'Card')并确定其中一个是否与调用对象具有相同的派系功能。但是,当我调试程序时,第一个函数按预期完美运行,但第二个函数似乎根本没有得到任何输入;它得到一个长度为 0 的对象。
'Factions' 是命名空间范围内的 public 枚举;我认为那里没有任何问题。
Class 和函数定义:
public class Card
{
/* Constructors, variables, and other functions left out for simplicity */
public bool SameFaction(Card card)
{
if (card.Faction.Equals(this.Faction))
return true;
return false;
}
public bool SameFaction(List<Card> hand)
{
foreach (Card card in hand)
{
if (card.Faction.Equals(this.Faction))
{
return true;
}
}
return false;
}
}
实施:
Card card1 = new Card(Factions.faction1);
List<Card> listOfCards = new List<Card>();
{
new Card(Factions.faction1);
new Card(Factions.faction2);
new Card(Factions.faction3);
new Card(Factions.faction4);
};
card1.SameFaction(new Card(Factions.faction1)); // Returns true
card1.SameFaction(listOfCards); // Returns false, and when debugging, shows input as being an object of length 0
基本上我想知道我做错了什么,以及是否有更好的方法。我是自学成才的,所以任何和所有的建议都是有帮助的。谢谢!
问题是单个;
太多
List<Card> listOfCards = new List<Card>();
{
new Card(Factions.faction1);
new Card(Factions.faction2);
new Card(Factions.faction3);
new Card(Factions.faction4);
};
这是两件事,而不是一件事,因为第一行以 ;
结尾。它创建一个空列表,然后有一段代码创建对象而不将它们放在任何地方。
这可能是你的意思:
List<Card> listOfCards = new List<Card>
{
new Card(Factions.faction1),
new Card(Factions.faction2),
new Card(Factions.faction3),
new Card(Factions.faction4)
};
这里是第一张海报。首先,我使用 .NET 4.8 和 C#。我在重载函数方面遇到了一些问题,该函数似乎没有获得任何参数输入。基本上我的函数试图做的是获取单个对象或对象列表(所有自定义 class 'Card')并确定其中一个是否与调用对象具有相同的派系功能。但是,当我调试程序时,第一个函数按预期完美运行,但第二个函数似乎根本没有得到任何输入;它得到一个长度为 0 的对象。 'Factions' 是命名空间范围内的 public 枚举;我认为那里没有任何问题。
Class 和函数定义:
public class Card
{
/* Constructors, variables, and other functions left out for simplicity */
public bool SameFaction(Card card)
{
if (card.Faction.Equals(this.Faction))
return true;
return false;
}
public bool SameFaction(List<Card> hand)
{
foreach (Card card in hand)
{
if (card.Faction.Equals(this.Faction))
{
return true;
}
}
return false;
}
}
实施:
Card card1 = new Card(Factions.faction1);
List<Card> listOfCards = new List<Card>();
{
new Card(Factions.faction1);
new Card(Factions.faction2);
new Card(Factions.faction3);
new Card(Factions.faction4);
};
card1.SameFaction(new Card(Factions.faction1)); // Returns true
card1.SameFaction(listOfCards); // Returns false, and when debugging, shows input as being an object of length 0
基本上我想知道我做错了什么,以及是否有更好的方法。我是自学成才的,所以任何和所有的建议都是有帮助的。谢谢!
问题是单个;
太多
List<Card> listOfCards = new List<Card>();
{
new Card(Factions.faction1);
new Card(Factions.faction2);
new Card(Factions.faction3);
new Card(Factions.faction4);
};
这是两件事,而不是一件事,因为第一行以 ;
结尾。它创建一个空列表,然后有一段代码创建对象而不将它们放在任何地方。
这可能是你的意思:
List<Card> listOfCards = new List<Card>
{
new Card(Factions.faction1),
new Card(Factions.faction2),
new Card(Factions.faction3),
new Card(Factions.faction4)
};