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

问题描述 投票:0回答:1

对于这么简单的问题,我很抱歉(我已经谷歌了,但我很难过,对编程很新)

示例代码如下

  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;
    }
c# non-nullable
1个回答
4
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.