4

次のような行を含む C# スタック トレースがあります。

at MyNamespace.WCFService.<DispatchWork>b__4(Task`1 t)
at MyNamespace.TestMethods.<RunTestCode>d__0.MoveNext()
at MyNamespace.ServiceProxy.<CallService>d__4a.MoveNext()

b__4d__0、 とはどういうd__4a意味ですか?

b__とはどう違いd__ますか?他の文字 ( と 以外) はdありbますか?

後のものは何__ですか?

4

1 に答える 1

3

これらの名前は、一時変数、yield 命令、ラムダなどのコンパイラによって自動的に生成されます。

これらの名前が表示されるケースは 2 つだけです。1 つはコンパイラが生成するもので、もう 1 つは誰かがアセンブリを難読化することを選択した場合です。難読化されたアセンブリには、メソッドやクラスにもこのような名前が付いています。

名前を生成するときにコンパイラが行うことの詳細については、これを参照してください (コメントで指摘されています)。

于 2013-11-07T09:18:42.943 に答える