Unity中Switch语句使用静态对象报错的问题排查
问题解决:Switch/Case中使用静态对象的语法错误
你的代码核心问题是switch的case标签语法错误,在每个case里重复写了Direction类型名,导致编译器无法正确解析。
错误原因
case标签中不需要重复声明类型,直接通过类名.静态成员名引用即可,你写的case Direction Direction.EAST属于语法冗余,触发了CS1003等解析错误。
修正后的代码
private Position getStartingPosition(Direction direction) { switch (direction) { case Direction.EAST: return new Position(-1, height / 2); case Direction.NORTH: return new Position(width / 2, height); case Direction.WEST: return new Position(width, height / 2); case Direction.SOUTH: return new Position(width / 2, -1); default: throw new System.Exception("Impossible"); } }
补充说明
你的Direction类通过静态只读字段定义了方向实例,在switch判断时,直接使用Direction.EAST这类静态成员作为case值即可,编译器会正确匹配传入的direction参数。
内容的提问来源于stack exchange,提问作者nurp
相关产品推荐
相关产品推荐

