visual studio 提供将 c# 中的表达式主体转换为方法的块主体:IDE0022

visual studio offers to convert Expression-body in c# to block body for method : IDE0022

public ActionResult Edit(int id)
        => Json(_itemMasterBL.GetItemMaster()?.Where(x => x.Id == id).FirstOrDefault(), JsonRequestBehavior.AllowGet);

我将上面的代码作为表达式体方法 (c# 6.0)。

但在 visual studio 2017 快速操作 (ctrl + .) 中提出了以下建议:

IDE0022: 方法使用块体如下:

public ActionResult Edit(int id)
    {
        return Json(_itemMasterBL.GetItemMaster()?.Where(x => x.Id == id).FirstOrDefault(), JsonRequestBehavior.AllowGet);
    }

这个建议是什么意思?它是否建议出于某种原因应该首选此更改?还是只是为了方便提供这种可能性?

在表达式主体和块主体之间进行转换有些繁琐,您可能希望经常这样做。这就是为什么我认为 VS 将它作为一种重构提供,它并不是一个比另一个更好的声明。