我的 C# 代码有问题... VS2010 不会让我编译 :(
这是我正在尝试做的事情:
bool listNotNeeded;
if(listNotNeeded && !myList.Any()) //I've tried other ways of verbalizing
{
myList.Clear();
}
它拒绝编译...给出错误:InvalidOperationException 未处理。序列不包含任何元素。如果列表已经为空,并且代码的其他部分填充它,则它永远不会到达这里。列表人口代码工作正常,已经编译和测试......只是这篇文章出于某种原因打破了它。
编辑:如果可能的话,我希望能够在不使用不必要的 try-catch 或使用起始值初始化列表的情况下进行编译。
private void UpdateRocket()
{
if (rocketFlying)
{
Vector2 gravity = new Vector2(0, 1);
rocketDirection += gravity / 9.8f;
rocketAngle = (float)Math.Atan2(rocketDirection.X, -rocketDirection.Y);
rocketPosition += rocketDirection;
Vector2 smokePos = rocketPosition;
smokePos.X += randomizer.Next(10) - 5;
smokePos.Y += randomizer.Next(10) - 5;
smokeList.Add(smokePos);
if (smokeList.Count > 20)
smokeList.Remove(smokeList.First<Vector2>());
}
if (!rocketFlying)
if (smokeList.Count > 0)
smokeList.Remove(smokeList.First<Vector2>());
if (rocketPosition.X < 0 || rocketPosition.X > screenWidth || rocketPosition.Y > screenHeight)
rocketFlying = false;
}