コンパイラは、「AnonymousType」が含まれるように常に匿名型に名前を付けているようです。
new { Name = "Sean"}.GetType().Name // Gives: <>f__AnonymousType0`1
これは信頼できますか?
コンパイラは、「AnonymousType」が含まれるように常に匿名型に名前を付けているようです。
new { Name = "Sean"}.GetType().Name // Gives: <>f__AnonymousType0`1
これは信頼できますか?
いいえ、それに頼ることはできません。C# の仕様では、コンパイラによって生成された型の名前が指定されていません。そのため、コンパイラの将来のバージョン (または mono などの代替実装) では、異なる命名スキームが選択される可能性があります。
C# 4.0 仕様で匿名型の型名について言及されているのは、7.6.10.6 だけです。
匿名型の名前はコンパイラによって自動的に生成され、プログラム テキストで参照することはできません。
つまり、保証は与えられておらず、暗示されておらず、コンパイラは自由に任意の名前を生成できます。
現在の C# コンパイラには、実際に、IL で生成される名前の一部として AnonymousType という名前が含まれます。
ただし、これは厳密には実装の詳細です。言語によって指定されていないか、言語の将来のバージョンで真であることが保証されていません