在带有 Unity 的 C# 中,我正在尝试创建类字典。
所有类都继承自具有许多虚拟方法的基类(构建脚本)
我已经这样设置了我的字典:
Dictionary<string, BuildingScript> buildingScripts = new Dictionary<string, BuildingScript>();
我正在尝试将其添加到字典中:
buildingScripts.Add("Farm", FarmScript);
buildingScripts.Add("Hunter", HunterScript);
buildingScripts.Add("Fisher", FisherScript);
编译器正在重新识别继承,所以我正在尝试找出我遗漏的内容。
错误信息是:
- error CS0119: Expression denotes a
type', where a
variable',value' or
method group' was expected- The best overloaded method match for 'System.Collections.Generic.Dictionary.Add(string, BuildingScript)' has some invalid arguments
- Argument
#2' cannot convert
object' expression to type `BuildingScript'
最佳答案
您的词典已声明为 Dictionary<string, BuildingScript>
, 所以它的值应该是 BuildingScript
的实例 .
考虑差异:FarmScript
本身是类型,但是 new FarmScript()
是该类型的实例。
所以你的代码应该是这样的:
buildingScripts.Add("Farm", new FarmScript());
buildingScripts.Add("Hunter", new HunterScript());
buildingScripts.Add("Fisher", new FisherScript());
关于c# - 创建字典<string, class>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35740974/