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.FormimplementerebbeIDisposable. - L'istruzione
usingnon è effettivamente richiesta, maHtml.Formsi 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?