visual studio提供将c#中的Expression-body转换为块体的方法:IDE0022

Abi*_*Abi 4 .net c# c#-6.0 visual-studio-2017

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

我将上面的代码作为表达式方法(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);
    }
Run Code Online (Sandbox Code Playgroud)

任何想法为什么会这样???

svi*_*ick 10

在表达式主体和块体之间进行转换有点单调乏味,而且您可能需要经常这样做.这就是为什么我认为VS提供它作为重构,我不认为这是一个比另一个好的声明.