Wib*_*ble 2 .net c# dictionary
在使用Unity的C#中,我正在尝试创建一个类的字典.
所有类都继承自具有许多虚方法的基类(构建脚本)
我已经设置了我的词典:
Dictionary<string, BuildingScript> buildingScripts = new Dictionary<string, BuildingScript>();
Run Code Online (Sandbox Code Playgroud)
我正试图添加到词典中:
buildingScripts.Add("Farm", FarmScript);
buildingScripts.Add("Hunter", HunterScript);
buildingScripts.Add("Fisher", FisherScript);
Run Code Online (Sandbox Code Playgroud)
编译器正在重新认识继承,所以我想弄清楚我错过了什么.
错误消息是:
- 错误CS0119:表达式表示
type', where a变量',value' or方法组'是预期的- 'System.Collections.Generic.Dictionary.Add(string,BuildingScript)'的最佳重载方法匹配有一些无效的参数
- 参数
#2' cannot convert对象'表达式以输入'BuildingScript'
你的字典已经被宣布为Dictionary<string, BuildingScript>,所以它的价值应该是一个实例的BuildingScript.
考虑差异:FarmScript本身是类型,但是new FarmScript()该类型的实例.
所以你的代码应该是这样的:
buildingScripts.Add("Farm", new FarmScript());
buildingScripts.Add("Hunter", new HunterScript());
buildingScripts.Add("Fisher", new FisherScript());
Run Code Online (Sandbox Code Playgroud)