没有写 C#的经验,在尝试给自己喜欢的游戏写 mod 时遇到 List 里一个问题,请教下有什么可能?

2021-03-07 01:02:53 +08:00
 Newyorkcity
https://paste.ubuntu.com/p/nK4r7KXHCz/

代码是如上,尽管有 Unity 相关的东西,但感觉应该和 unity 无关。

注意第 36 和第 38 行,这两行代码导致输出台上产生了有效的内容,也就是说 rp.name 是一个非空字符串。

但是在第 57 行输出时,输出的结果只有 unlock .

也就是说 rp.name 变成了一个空字符串?( rp 应该还不是 null,不然进游戏游戏会报错)。

由于我没有 C#开发经验,所以来请教下,谢谢。
849 次点击
所在节点    问与答
3 条回复
geelaw
2021-03-07 03:47:08 +08:00
从逃逸分析的角度,比较像是 OnAfterDeserialize 改变了 name 。
Newyorkcity
2021-03-07 08:55:23 +08:00
@geelaw

谢谢啊 我在 OnAfterDeserialize()上下分别再次要求输出 allMyRecipes[0].name,结果真的是上面一行有下面一行就没了。。但是好奇怪啊,我是照着一个 up 写的 mod 仿写的,那个 mod 也是先 OnAfterDeserialize()然后再使用 list 去 unlock 的,却工作得很正常。大佬知道可能的原因吗?
PerFectTime
2021-03-07 20:10:02 +08:00
戴森球计划?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/759184

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX