Considera il seguente codice (sanzionato da Microsoft):
<% using (Html.Form<HomeController>(action=>action.Index())) { %>
<input type="text" id="search" />
<input type="button" value="Submit" />
<% } %>
L'istruzione using
non ha uno scopo qui: per aggiungere un tag </form>
alla fine dell'HTML generato.
Questo mi sembra sporco, per quello che spero siano ovvi motivi:
- Non è la ragion d'essere di
using
. - Causa deliberatamente effetti collaterali.
- Non è intuitivo che
Html.Form
implementerebbeIDisposable
. - L'istruzione
using
non è effettivamente richiesta, maHtml.Form
si interromperà senza di essa (a meno che tu non emetta</form>
te stesso, che manchi l'intero punto).
Questo è non l'unico abuso che le persone hanno accumulato sul pattern using
.
La domanda è: esiste un'alternativa valida che fornisca gli stessi vantaggi stilistici / di leggibilità di using
, senza farti venire voglia di fare una doccia dopo?