C# 是什么导致从void类型到List类型的隐式转换错误<;T>;?
我编写了以下代码:C# 是什么导致从void类型到List类型的隐式转换错误<;T>;?,c#,.net,list,generics,C#,.net,List,Generics,我编写了以下代码: public List<Card> DealCards(int numCardsToDeal) { return shuffle.RemoveRange(0,numCardsToDeal-1); } private List<Card> shuffle = new List<Card>() // class property deceleration. public List DealCard
public List<Card> DealCards(int numCardsToDeal) {
return shuffle.RemoveRange(0,numCardsToDeal-1);
}
private List<Card> shuffle = new List<Card>() // class property deceleration.
public List DealCards(int numCardsToDeal){
返回shuffle.RemoveRange(0,numCardsToDeal-1);
}
private List shuffle=new List()//类属性。
但它会产生以下错误:
无法将类型“void”隐式转换为“System.Collections.Generic.List”
我不明白为什么。当我返回shuffle时,它就工作了。为什么这样可以解决问题?修改列表,不返回任何内容-因此无效。这与许多返回新列表的列表方法不同
下面的代码用于删除卡,然后返回列表:
public List<Card> DealCards(int numCardsToDeal)
{
shuffle.RemoveRange(0,numCardsToDeal-1);
return shuffle;
}
public List DealCards(int numCardsToDeal)
{
shuffle.RemoveRange(0,numCardsToDeal-1);
返回洗牌;
}
如果shuffle
实际上是一个全局变量,您甚至不需要返回任何内容。修改列表,不返回任何内容-因此无效。这与许多返回新列表的列表方法不同
下面的代码用于删除卡,然后返回列表:
public List<Card> DealCards(int numCardsToDeal)
{
shuffle.RemoveRange(0,numCardsToDeal-1);
return shuffle;
}
public List DealCards(int numCardsToDeal)
{
shuffle.RemoveRange(0,numCardsToDeal-1);
返回洗牌;
}
如果shuffle实际上是一个全局变量,您甚至不需要返回任何东西。不返回值,其返回类型为void
。它将从列表中删除指定范围的元素。它不会返回修改后的列表,也不会返回包含已删除对象的列表
因此,尝试返回RemoveRange
方法的结果会产生错误,因为您无法从本应返回列表的函数返回void
您需要将代码分成两行:
public List<Card> DealCards(int numCardsToDeal)
{
// First, remove the range of cards from the deck.
shuffle.RemoveRange(0,numCardsToDeal-1);
// Then, return the modified list.
return shuffle;
}
public List DealCards(int numCardsToDeal)
{
//首先,从牌组中移除牌的范围。
shuffle.RemoveRange(0,numCardsToDeal-1);
//然后,返回修改后的列表。
返回洗牌;
}
不返回值,其返回类型为void
。它将从列表中删除指定范围的元素。它不会返回修改后的列表,也不会返回包含已删除对象的列表
因此,尝试返回RemoveRange
方法的结果会产生错误,因为您无法从本应返回列表的函数返回void
您需要将代码分成两行:
public List<Card> DealCards(int numCardsToDeal)
{
// First, remove the range of cards from the deck.
shuffle.RemoveRange(0,numCardsToDeal-1);
// Then, return the modified list.
return shuffle;
}
public List DealCards(int numCardsToDeal)
{
//首先,从牌组中移除牌的范围。
shuffle.RemoveRange(0,numCardsToDeal-1);
//然后,返回修改后的列表。
返回洗牌;
}
可能是因为您的卡类未实现IEnumerbale属性……可能是因为您的卡类未实现IEnumerbale属性。。。。。。