所以我试图为某个学校的任务创建某种类型的库,但是我很难将对象添加到集合中。
它适用于 Auteurs 这个系列,但同一段代码不能与 Leden 或 Boeken 一起使用。
我得到的错误是:
LEDEN (局部变量)盖子l1 参数1:无法转换为AO2.Lid'到' AO2.Leden'。
Boeken (局部变量)Boek b1 参数1:无法转换为AO2.Boek'到AO2.Boeken'。
有人可以给我一些指示让我重新开始吗?
提前谢谢。
class Auteurs
{
private Auteur[] _Items = new Auteur[0];
public Auteur this[int index]
{
get { return _Items[index]; }
}
public int Count { get; private set; }
public void Add(Auteur auteur)
{
Count++;
Array.Resize(ref _Items, Count);
_Items[Count - 1] = auteur;
}
}
class Leden
{
private Leden[] _Items1 = new Leden[0];
public Leden this[int index]
{
get { return _Items1[index]; }
}
public int Count { get; private set; }
public void Add(Leden leden)
{
Count++;
Array.Resize(ref _Items1, Count);
_Items1[Count - 1] = leden;
}
}
class Boeken
{
private Boeken[] _Items1 = new Boeken[0];
public Boeken this[int index]
{
get { return _Items1[index]; }
}
public int Count { get; private set; }
public void Add(Boeken boeken)
{
Count++;
Array.Resize(ref _Items1, Count);
_Items1[Count - 1] = boeken;
}
}
class Program
{
static void Main(string[] args)
{
Auteur a1 = new Auteur("Name1", "Lastname1");
Auteur a2 = new Auteur("Name2", "Lastname2");
>these work so made 2 new 'Auteur' and added them to the collection 'Auteurs'
Auteurs auteurs = new Auteurs();
auteurs.Add(a1);
auteurs.Add(a2);
Lid l1 = new Lid("Name1", "Lastname1");
Lid l2 = new Lid("Name2", "Lastname2");
Lid l3 = new Lid("Name3", "Lastname3");
>When I try the same code with Leden it doesn't work and gives the error as stated above
Leden leden = new Leden();
leden.Add(l1);
Boek b1 = new Boek("Bookname1");
>The Same error with Boeken.>
Boeken boeken = new Boeken();
boeken.Add(b1);
}
}
答案 0 :(得分:0)
错误的原因是你的函数需要一个特定的类型,但你给它一个不同的(它不能在两者之间隐式转换)。
Leden
的添加期待Leden
个对象:public void Add(Leden leden)
- 但是你传递的是Lid
- leden.Add(l1);
类型的实例。
我的猜测是,您希望Leden
包含Lid
而不是Leden
的数组:
class Leden
{
private Lid[] _Items1 = new Lid[0];
public Lid this[int index]
{
get { return _Items1[index]; }
}
public int Count { get; private set; }
public void Add(Lid lid)
{
Count++;
Array.Resize(ref _Items1, Count);
_Items1[Count - 1] = lid;
}
}
Boeken
与Boek
答案 1 :(得分:0)
在Leden和Boeken,你应该发送一个Lid和Boek来添加,所以看起来应该是这样的
class Leden
{
private Lid[] _Items1 = new Lid[0];
public Lid this[int index]
{
get { return _Items1[index]; }
}
public int Count { get; private set; }
public void Add(Lid leden)
{
Count++;
Array.Resize(ref _Items1, Count);
_Items1[Count - 1] = leden;
}
}