Ho la seguente azione ASP.NET Web Api 2 con un ternario se ritorno:"non può essere determinato, perché non v'è alcuna conversione implicita" con ternery se ritorno
[HttpDelete]
public IHttpActionResult Delete()
{
bool deleted;
// ...
return deleted ? this.Ok() : this.NotFound();
}
Riceverò una
Tipo di espressione condizionale non può essere determinato perché non c'è alcuna conversione implicita tra 'System.Web.Http.Results.OkResult' e 'System.Web.Http.Results.NotFoundResult'
quando entrambi implementano IHttpActionResult
.
Tuttavia se mi tolgo la ternario se, il compilatore è felice:
if (deleted)
{
return this.Ok();
}
return this.NotFound();
perché è questo?
Perché secondo blocco di lavoro di codice di Sam, senza esplicitamente colata a 'IHttpActionResult', appena fuori curiosità? È qualcosa di particolare per l'operatore condizionale '?:'? –
@GrantWinney Sì, è – dcastro
@GrantWinney Vedere la mia risposta modificata. –