次のようにすると、「今からはじめるIL」という名前のクラスが作れる。
.class private '今からはじめるIL' { }
また、これを応用すると、次のような事も出来る。
.class private 'private' { }
これで「private」という名前のクラスが出来る。これでDLLを作って配ればちょっと呼び出しづらいクラスやメソッドが作れます。一体どう使えばいいのやら。究極例としては次。
.class private 'asd123!"#$%&()==~|-^\`{@[+*};:]<>?_,./\'\\\t\a\r\n' { }
これ、コンパイル通ります。凄すぎです。
あと、「\0」を試したサンプルは下。\0から後ろの名前は無効化されるらしい。
.assembly 'jap-test' { } .method public static void 'asd123!"#$%&()==~|-^\`{@[+*};:]<>?_,./\a\'\\\0\t\r\n'() { ldstr "asd" call void [mscorlib]System.Console::WriteLine(string) } .method public static void Main() { .entrypoint ldstr "123" call void [mscorlib]System.Console::WriteLine(string) call void 'asd123!"#$%&()==~|-^\`{@[+*};:]<>?_,./\a\'\\'() ret }
有意義に活用しましょう。