Il team C# ha in precedenza considerato di aggiungere proprietà di estensione, eventi ecc. A C#.Stato di conservazione in un metodo di estensione
Per Eric Lippert:
http://blogs.msdn.com/b/ericlippert/archive/2009/10/05/why-no-extension-properties.aspx
Per queste caratteristiche per essere utili tuttavia, dovrebbe essere in grado di memorizzare un nuovo tipo di stato con un oggetto. Sembra che l'unico modo per farlo sarebbe quello di usare un dizionario e associare ogni istanza di un oggetto con qualunque sia lo stato aggiuntivo.
Sarebbe utile se fosse possibile copiare questa funzionalità "manualmente" creando il mio dizionario (e magari ottenere/impostare metodi di estensione). Tuttavia, al fine di associare una particolare istanza di un oggetto con uno stato, è necessario eseguire l'hash dell'oggetto effettivo. In un'altra lingua si potrebbe fare questo triturando la sua posizione di memoria, tuttavia in C# non è garantito che rimanga costante, e l'uso di codice non sicuro per realizzare questa funzione è comunque lontano dall'ideale.
Qualcuno sa se è possibile ottenere un riferimento hashable a un oggetto che non cambia quando lo stato interno dell'oggetto cambia? Esiste ovviamente un meccanismo interno per tenere traccia dei singoli oggetti indipendentemente dalla loro posizione di memoria, ma non sono sicuro che sia esposto al codice utente.
Nota: l'hash stesso dell'oggetto non funzionerà affatto, poiché GetHashCode() dipende dallo stato interno di un oggetto non su quale oggetto è.
Grazie per qualsiasi intuizione.
Ugh, mi piace metodi di estensione perché non trattano con lo stato dell'oggetto e sono solo lo zucchero sintassi, avrei paura di fare qualcosa di più in realtà sfuma i linee troppo ...Detto questo, è un pensiero interessante, ovviamente ... –