获取错误“因为它是不可为空的值类型,所以无法转换为null'Point'。”

时间:2019-02-13 18:32:26

标签: c# non-nullable

很抱歉提出了这样一个简单的问题(我已经用谷歌搜索,但是很困惑,对编程还是陌生的)

下面的示例代码

  public Point GetRandomWalkableLocationInRoom(Rectangle room)
    {
        if (DoesRoomHaveWalkableSpace(room))
        {
            for (int i = 0; i < 100; i++)
            {
                int x = Game.Random.Next(1, room.Width - 2) + room.X;
                int y = Game.Random.Next(1, room.Height - 2) + room.Y;
                if (IsWalkable(x, y))
                {
                    return new Point(x, y);
                }
            }
        }


        return null;
    }

1 个答案:

答案 0 :(得分:3)

在DidsRoomHaveWalkableSpace(room)为false的情况下,抛出异常(如果适合您的实现),或者返回一些默认值,例如'new Point(double.NaN,double.NaN)'或'new Point (null,null)”。