[Atelier Blue アトリエブルー]Homeプログラミング IL(CIL,MSIL)>多言語やキーワードと名前がかぶった時の扱い

多言語やキーワードと名前がかぶった時の扱い(エスケープシーケンスも)

次のようにすると、「今からはじめる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
}

有意義に活用しましょう。


ページの一番上へ
一覧に戻る
初版2006-8-6
[Atelier Blue アトリエブルー]Homeプログラミング IL(CIL,MSIL)>多言語やキーワードと名前がかぶった時の扱い