質問: プロパティーに与えられた属性が含まれているかどうかを判断する最も速い方法の質問に対するこの回答では、ユーザーDarin Dimitrovは表現木がリフレクションよりも安全であると提唱しました。これは本当ですか、もしそうなら、なぜそれは本当ですか?
回答: あなたのフィールドを検索するとき(その質問のように)、あなたは文字列表現`"Id"`を使うからです。それが変更されると、あなたの反映は崩壊するでしょう。 Darinが提案するものは静的型付けです: ``` Expression> expression = p => p.Id; ``` あなたはそれを見ますか?これは面白いですが、C#4.0コンパイラのよく知られている機能ではありません。自動的にラムダ式から式ツリーを構築し、 `Expression`キャストします。それでは、後でそれをトラバースして`Id` `MemberInfo`を取得することができます。しかし、あなたは`string`検索することができないので、Reflectionほど普遍的ではありません。