Sup*_*ggy 2 c# debugging reference list
好的,我有一个List<SpecialTile>叫做SpecialTileswhere SpecialTile的结构.SpecialTile结构的一个属性是一个名为Active我正在尝试更改的公共布尔值,但由于某种原因它不起作用.我不确定它是否相关,但列表由另一个类的实例拥有.这是我在调试器中运行时的图片:

所以无论如何,我遇到了这个问题,因为最初我试图使用代码行
Mgen.SpecialTiles[ESV.editThis].Active = !Mgen.SpecialTiles[ESV.editThis].Active;
Run Code Online (Sandbox Code Playgroud)
但它告诉我"活跃"并非变数.正如你所看到的,它不会让我以这种方式修改价值:

所以我假设我必须通过方法修改值.但显然这也不起作用?
我错过了List变量的一些内容吗?即使它不应该修改该值,为什么调试器列出"Active"为false然后将其翻转为true?
谢谢!
这是结构的问题.调用列表索引器会MGen.SpecialTiles[x]返回存储在列表中的结构的副本,因此您在该结构上调用的任何方法都将对该副本进行操作.由于副本是临时的,因此该方法所做的更改最终会被丢弃.
如果您更改SpecialData为课程,则应解决您的问题.
| 归档时间: |
|
| 查看次数: |
194 次 |
| 最近记录: |