ich habe folgende ASP.NET-Api 2 Aktion mit einem ternären, wenn Rückkehr:„Kann nicht bestimmt werden, weil es keine implizite Konvertierung ist“ mit ternery wenn Rückkehr
[HttpDelete]
public IHttpActionResult Delete()
{
bool deleted;
// ...
return deleted ? this.Ok() : this.NotFound();
}
ich
erhaltenArt des bedingten Ausdrucks kann nicht bestimmt werden, da keine implizite Konvertierung zwischen ‚System.Web.Http.Results.OkResult‘ ist und ‚System.Web.Http.Results.NotFoundResult‘
, wenn beide IHttpActionResult
implementieren.
Allerdings, wenn ich die ternären entfernen, wenn der Compiler ist glücklich:
if (deleted)
{
return this.Ok();
}
return this.NotFound();
Warum ist das?
Warum Sams zweiten Codeblock Arbeit ohne zu 'IHttpActionResult' ausdrücklich zu Gießen, gerade aus Neugierde? Ist das etwas Besonderes für den bedingten '?:' Operator? –
@GrantWinney Ja, es ist – dcastro
@GrantWinney Siehe meine bearbeitete Antwort. –