Visual Studio デバッガーの隠し名のデコード
Visual Studio の C# コンパイラは、型、メソッド、変数に対して一意の内部名のシステムを採用しています。この名前は開発者には表示されません。 Reflector などのツールを通じて明らかにされるこれらの「魔法の名前」は、最適化されたローカル変数、一時的な保存場所、コンパイラが生成した要素を管理する上で重要な機能を果たします。
限定的なドキュメントと実装の詳細
これらの命名スキームは正式に文書化されておらず、予告なく変更される可能性があることに注意してください。 ただし、次のパターンが観察されています:
ローカル変数の命名規則:
__Deleted$
CS$X$Y
(X
は一時変数のタイプを表し、Y
はそのインデックスを表します)。コンパイラによって生成された要素名:
P<name>C__state$S
P<name>C__current$S
P<name>C__AnonymousMethodDelegate$S
P<name>C__DisplayClass$S
P<name>C__BackingField$S
GeneratedNames.cs ファイル
これらの命名規則に関する最新情報については、C# コンパイラ ソース コード内の GeneratedNames.cs
ファイルを参照してください。
PostSharp 2.0 とこれらの名前を理解することの重要性
PostSharp 2.0 のようなツールでは、これらの内部命名規則を完全に理解することが不可欠です。 これらの規則に従うことで、PostSharp は Visual Studio 内でのスムーズで一貫したデバッグ エクスペリエンスを保証します。
以上がC# コンパイラによって生成される「マジック名」とは何ですか? PostSharp 2.0 はそれらをどのように利用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。