我想创建一个符合预定义的IFlower
接口的花的列表(例如),如下所示。List.AddRange有一些无效的参数
public interface IFlower
{
string colour { get; }
int petals { get; }
}
public class Rose : IFlower
{
public Rose()
{
string[] colours = new string[]{ "Pink", "Orange", "Red", "Crimson", "Cerise" };
Random random = new Random();
colour = colours[random.Next(0, 4)];
}
public string colour { get; set; }
public int petals
{
get { return 8; }
}
}
public class Daisy : IFlower{
public Daisy()
{
string[] colours = new string[]{ "White", "Yellow", "Purple" };
Random random = new Random();
colour = colours[random.Next(0, 2)];
}
public string colour { get; set; }
public int petals
{
get { return 18; }
}
}
public class Flowers
{
public List<Daisy> Daisies
{
get
{
List<Daisy> items = new List<Daisy>();
items.Add(new Daisy());
items.Add(new Daisy());
return items;
}
}
public List<Rose> Roses
{
get
{
List<Rose> items = new List<Rose>();
items.Add(new Rose());
items.Add(new Rose());
return items;
}
}
}
问题是,当我运行下面的代码来创建拼接列表:
public List<IFlower> Flowers
{
get
{
List<IFlower> output = new List<IFlower>();
output.AddRange(Daisies);
output.AddRange(Roses);
return output;
}
}
我得到的错误:
The best overloaded method match for 'System.Collections.Generic.List<IFlower>.AddRange(System.Collections.Generic.IEnumerable<IFlower>)' has some invalid arguments
我没有看到您创建Daisies和Roses集合的位置,因此我们无法看到它们的类型。编译器错误通常意味着函数参数具有错误的类型。你可以添加定义参数的代码吗? – phoog 2011-04-12 03:52:18