我可以使用吗?:语法来决定我的方法返回什么

本文关键字:我的 决定 方法 返回 什么 语法 可以使 我可以 | 更新日期: 2023-09-27 18:26:26

我在WebAPI中有一个执行SQL:的操作方法

var sql = @"UPDATE UserTestQuestion
            SET    AnswerGridResponses = @AnswerGridResponses,
                   Answered = 1
            WHERE  UserTestQuestionId = @UserTestQuestionId
            AND    UserId = @UserId;";
var parameters = new SqlParameter[]
{
    new SqlParameter("@CreatedBy", createdBy),
    new SqlParameter("@AnswerGridResponses", answerGridResponses),
    new SqlParameter("@TestQuestionId", testQuestionId)
};
var rc = await db.Database.ExecuteSqlCommandAsync(sql, parameters);
if (rc > 0)
{
    return Ok(rc);
}
else
{
    return BadRequest();
}

据我所知,ExecuteSqlCommandAsync将向指示更改了多少行。所以我添加了一个rc > 0的检查。

有没有一种方法可以在不需要所有{}的情况下做到这一点。我是考虑使用? :运算符,但我认为这些运算符只适用于设置值,而不是像我使用的那样用于返回。

我可以使用吗?:语法来决定我的方法返回什么

你可以做你想做的事情。

return (rc > 0) ? Ok(rc) : BadRequest();

尽管有些人可能认为使用if/else更清洁。你不需要花括号,你可以做:

if (rc > 0)
    return Ok(rc);
else
    return BadRequest();

正如其他人所说,您肯定可以返回三元运算符的结果。需要注意的一件事是类型转换,因为它需要计算为单个返回类型。只有当您试图在特定条件下返回null时,才会出现这种情况,在这种情况下,您可以将null强制转换为正确的类型。

也就是说,最好将结果分配给一个变量,然后返回该变量。它读起来更干净,更重要的是,更容易调试。(基本上,每次调试其中一个函数时,我都会将其更改为变量赋值,这样我就可以在离开函数之前看到值。)