temo che si dovrà utilizzare la riflessione al fine di accedere a tali membri. La fuga semplicemente non funziona nel tuo caso.
Ma per thoose di voi, che interessati a fuggire meccanica ho scritto una spiegazione.
In C# è possibile utilizzare @ -sign per sfuggire alle parole chiave e utilizzarle come identificatori. Tuttavia, questo non aiuta a scappare caratteri non validi:
bool @bool = false;
C'è un modo per scrivere identificatori in modo diverso utilizzando una sequenza di escape Unicode:
int i\u0064; // '\u0064' == 'd'
id = 5;
Sì, questo funziona. Tuttavia, anche con questo trucco non puoi ancora usare $ -sign in un identificatore. Cercando ...
int i\u0024; // '\u0024' == '$'
... dà l'errore del compilatore "Unexpected character '\u0024'"
. L'identificatore deve essere ancora un identificatore valido! Il compilatore C# risolve probabilmente la sequenza di escape in una sorta di pre-elaborazione e tratta l'identificatore risultante come se fosse stato immesso normalmente
Quindi, a cosa serve questo scappare? Forse può aiutarti, se qualcuno usa un personaggio di lingua straniera che non è sulla tua tastiera.
int \u00E4; // German a-Umlaut
ä = 5;
fonte
2012-10-09 23:21:27
si stanno avendo una giornata di divertimento, non sono tu? –
La risposta irriverente sarebbe "riscrivere la DLL". –
@AndrewCooper Sono sicuro che usando Mono.Cecil puoi riscrivere quelle parti dell'assemblaggio. – DaveShaw