C# 事件处理程序中的列表计数为0,但更新中的列表计数为3

C# 事件处理程序中的列表计数为0,但更新中的列表计数为3,c#,events,list,xna,C#,Events,List,Xna,我已经创建了一个事件处理程序,它被称为每次更新,用于测试目的。 我的问题是,当我在类中找到一个列表的计数时,它在事件处理程序中是0,而在更新方法中是3。如果我不是在任何地方修改列表,而是在LoadContent方法中修改,为什么会发生这种情况 事件处理程序的代码: if (MaxTiles.X * row + col < TileList.Count) { selectedTileIndex = (int)(row * MaxTiles.X + col); System.D

我已经创建了一个事件处理程序,它被称为每次更新,用于测试目的。 我的问题是,当我在类中找到一个列表的计数时,它在事件处理程序中是0,而在更新方法中是3。如果我不是在任何地方修改列表,而是在LoadContent方法中修改,为什么会发生这种情况

事件处理程序的代码:

if (MaxTiles.X * row + col < TileList.Count)
{
    selectedTileIndex = (int)(row * MaxTiles.X + col);
    System.Diagnostics.Debug.WriteLine(selectedTileIndex.ToString());
}
System.Diagnostics.Debug.WriteLine(TileList.Count);
编辑:当我从对象本身调用它时,我已经测试了这个方法,它给了我3的计数!关于C事件有什么我不知道的吗

编辑:如果有帮助,事件将在另一个类中触发


编辑:我发现了一个非常难闻的解决方法,但我很好奇为什么会发生这种情况。

对于类似的事情,稍微多了解一些信息可能会有所帮助,不过我会在黑暗中拍摄


也许您第一次在事件处理程序中查看它时,它刚刚被实例化?如果没有,是否调用了LoadContent事件,则抛出一个断点并尝试单步执行该过程可能会有所帮助。

实际上,更新方法中的计数为3,因此它确实有这些项,事件处理程序也无法看到它们,我在问题中说过,在调试时,每个updateJust都会调用处理程序,这可能是一个不相关的问题。在WriteLine语句中,添加一个描述可能会有所帮助,例如分别为Current Tile:0和Tile Count:0。如果这是您用来跟踪这些的。我通常会这样做,但在这种情况下,本地列表显示计数也为0,但仅在事件句柄中,您应该显示更多的代码。无法判断与您发布的内容有什么不同。