【发布时间】:2012-12-06 12:40:52
【问题描述】:
我知道这可能是一个愚蠢的问题,答案很简单,但是在互联网上搜索了一个小时后,我找不到这样做的方法;
public bool GetCollision(int x, int y)
{
bool isPassable;
if (x < 0 || x >= 20)
{
isPassable = false;
}
if (y < 0 || y >= 20)
{
isPassable = true;
}
return isPassable;
}
在倒数第二行它说 isPassable 是未分配的......但显然我在 if 语句中分配给它。我对“if”语句肯定存在一些根本性的误解。
那么,我该怎么做呢?非常感谢。
【问题讨论】:
-
如果例如 x = 5 和 y = 5,
isPassable的值是多少? -
另一个函数完全处理这个问题。我正在从 Microsoft 的 Platformer Starter Kit 中实现碰撞(至少尝试)。
-
是的,但是 C# 编译器需要为每种可能的情况设置一个值。如果您确定这些情况永远不会发生,只需使用 true 或 false 初始化 isPassable,或者如果您不属于预期的情况,只需抛出异常...
-
Google 是您的朋友,对于“未分配变量 c#”,您将获得第一个带有 Q 和 A 的 SO 链接,完全相同!