我可以使用吗?:语法来决定我的方法返回什么
本文关键字:我的 决定 方法 返回 什么 语法 可以使 我可以 | 更新日期: 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强制转换为正确的类型。
也就是说,最好将结果分配给一个变量,然后返回该变量。它读起来更干净,更重要的是,更容易调试。(基本上,每次调试其中一个函数时,我都会将其更改为变量赋值,这样我就可以在离开函数之前看到值。)