Oggi un collega mi ha fatto notare un'apparente anomalia che non avevo mai notato. L'invocazione del metodo QueryString::ToString(), es
...Response.Write( QueryString.ToString() );...
produce una rappresentazione testuale della query string (es. a=1&b=2). La cosa è logica se non fosse per il fatto che la proprietà QueryString di HttpRequest è di tipo System.Collections.Specialized.NameValueCollection, classe che non ridefinisce l'implementazione standard del metodo ToString() e che quindi dovrebbe restituire una stringa con il nome della classe ("System.Collections.Specialized.NameValueCollection" appunto).In realtà la spiegazione si trova andando a decompilare il codice della proprietà HttpRequest::QueryString: il membro privato relativo alla proprietà viene inizializzato con una istanza della classe internal HttpValueCollection...