ホームページ > バックエンド開発 > C++ > C# コンパイラによって生成される「マジック名」とは何ですか? PostSharp 2.0 はそれらをどのように利用しますか?

C# コンパイラによって生成される「マジック名」とは何ですか? PostSharp 2.0 はそれらをどのように利用しますか?

Patricia Arquette
リリース: 2025-01-13 06:24:45
オリジナル
176 人が閲覧しました

What are the

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート