小编car*_*dnc的帖子

用Resharper和bug进行重构,为什么?

我有一个方法,我认为它与if语句相当重要,我决定在Resharper的帮助下重构它,后来发现它是我遇到的很多错误的原因.

private bool isValid(User user)
{
    if (user == null)
        return false;
    if (user.IsBot)
        return true;
    if (user.GetClient() == null)
        return false;
    if (user.GetClient().GetData() == null)
        return false;
    if (user.GetClient().GetData().CurrentRoomId != _room.RoomId)
        return false;
    return true;
}
Run Code Online (Sandbox Code Playgroud)

我为此重构了它

private bool isValid(User user)
{
    return user?.GetClient() != null && user.GetClient().GetData() != null && user.GetClient().GetData().CurrentRoomId == _room.RoomId;
}
Run Code Online (Sandbox Code Playgroud)

将重构版本返回到原始版本后,所有错误都消失了.仅仅为了自我改善的目的,有人可以告诉我我做错了什么吗?我看不到任何东西,但很明显它打破了很多东西所以它必须有所作为.

.net c# resharper

3
推荐指数
1
解决办法
92
查看次数

标签 统计

.net ×1

c# ×1

resharper ×1