在我的程序中,我创建了一个名为Monsters的类。它由四个不同的枚举定义:物种,稀有度,区域和类型。我正在尝试创建一个列表。这是我写的代码:
public class Monsters
{
public Enums.Species monsterName;
public Enums.Rarity rarity;
public Enums.Region region;
public Enums.Type monsterType;
public Monsters(Enums.Species monsterName, Enums.Rarity rarity, Enums.Region region, Enums.Type monsterType)
{
this.monsterName = monsterName;
this.rarity = rarity;
this.region = region;
this.monsterType = monsterType;
}
public Enums.Species getmonsterName()
{
return monsterName;
}
public Enums.Rarity getrarity()
{
return rarity;
}
public Enums.Region getregion()
{
return region;
}
public Enums.Type getmonsterType()
{
return monsterType;
}
List<Monsters> startersPokemon = new List<Monsters>();
startersPokemon.Add(Enums.Species.PIKACHU, Enums.Rarity.rare, Enums.Region.Pallet, Enums.Type.electric);
}
当我输入我尝试添加到列表中的最后一行代码时,我不断收到错误,告诉我这是一个用作类型的字段。我该如何纠正这个问题?如果列表不是我的问题的答案,那么阵列会更好吗?
答案 0 :(得分:1)
我在您的代码中发现了2个问题。
1. startersPokemon
不应在怪物类中声明。它可以是一个类:
public class MonstersList
{
List<Monsters> startersPokemon = new List<Monsters>();
// init startersPokemon
public MonstersList()
{
// please read 2nd point.
startersPokemon.Add(...);
}
}
2.您应该将an instance of Monsters
添加到您的列表中。您可以将代码更改为:
startersPokemon.Add(
new Monsters
(
Enums.Species.PIKACHU,
Enums.Rarity.rare,
Enums.Region.Pallet,
Enums.Type.electric
)
);
答案 1 :(得分:0)
您的代码就位于类定义的中间位置。它需要在一个可以从某个地方调用的方法中。该方法可能是您已经拥有的Monsters构造函数,或者您可以创建一个单独的方法。
public void Initialize()
{
List<Monsters> startersPokemon = new List<Monsters>();
startersPokemon.Add(
new Monsters
(
Enums.Species.PIKACHU,
Enums.Rarity.rare,
Enums.Region.Pallet,
Enums.Type.electric
)
);
}