我在这部分代码中遇到了一些问题,它来自一个小程序我正在为RPG的魔法项目创建者工作。它应该很简单,spellList(全局声明)是字符串的Hashtable键,值是类' Spells'的对象。
public void PopulateSpellDropDown()
{
Spells s = new Spells();
foreach (DictionaryEntry entry in spellList)
{
s = entry.Value; **<- Error here, no implicit conversion.**
cbScrollSpells.Items.Add(entry.Key.ToString());
}
}
我试过把演员阵容放在我能想到的所有地方,但似乎没什么用。我尝试过搜索一些教程,但似乎没有任何建议可行。我确信这将是一个令人尴尬的简单问题,但我希望得到帮助。
谢谢。
答案 0 :(得分:3)
这样做:
s = (Spell) entry.Value;
或者,您可以使用Dictionary<T,T>
泛型类型作为集合,然后您就不必进行任何投射。
答案 1 :(得分:2)
当“值是类'法术'的对象时”, 那应该有用:
s = (Spells) entry.Value;
答案 2 :(得分:2)
你应该明确地将entry.Value转换为正确的类型,如下所示:
(Spell)entry.Value
另外我更喜欢使用更短的
foreach (var entry in spellList)
而不是
foreach (DictionaryEntry entry in spellList)
答案 3 :(得分:1)
如果条目中的value属性是Spells
类型,那么显式强制转换将为您完成这一操作;
s = (Spells)entry.Value;