我想恢复另一个人写的一个老项目,这是在Unity 5.2.1f1版本中。
经过编辑。第一次打开它时,我遇到了这个错误,与 "相同键的字典已经存在 "有关。
因为是别人写的,所以我无法进行任何 "记得我在哪里用过字典 "式的追踪。
如果你遇到这个问题,你还会用什么方法来追踪字典错误?有没有什么特殊的工具或小技巧可以让我们能够对这个编译错误进行深挖?
Error: System.ArgumentException: An element with the same key already exists in the dictionary.
at System.Collections.Generic.Dictionary`2[System.String,System.String].Add (System.String key, System.String value) [0x00000] in <filename unknown>:0
at us.UnityScriptCompilerFactory.FromCommandLineOptions (us.CommandLineOptions options) [0x00000] in <filename unknown>:0
at us.UsModule.compile (us.CommandLineOptions options) [0x00000] in <filename unknown>:0
at us.UsModule.runWithCommandLine (System.String[] commandLine) [0x00000] in <filename unknown>:0
at us.UsModule.Main (System.String[] argv) [0x00000] in <filename unknown>:0
因为文件名未知,所以不知道如何追踪。有什么办法可以定位到这是哪里吗(双击没有让我找到错误行)。
问题是在代码中有一个字典。你试图使用字典中已经存在的键添加条目(重复键条目),这使你的程序崩溃。
为了增加vasmos的答案的精确性,并且不对你的代码进行任何其他的精确性。
来了解和查找你的字典中是否有重复的键。ContainsKey
if (dico.ContainsKey(key))
{ ... }
或使用 TryGetValue
dico.TryGetValue(key, out value);