Kann ich Expression <Func <T, bool >> verwenden und zuverlässig sehen, auf welche Eigenschaften in Func <T, bool> verwiesen wird?

Ich schreibe etwas im Geschmack vonEnumerable.Where in das nimmt ein Prädikat der FormFunc<T, bool>. Wenn das zugrunde liegendeT implementiertINotifyPropertyChanged, Ich möchte das Prädikat etwas intelligenter neu bewerten.

Ich denke darüber nach, es zu ändern, um @ zu verwendExpression<Func<T, bool>> und dann mithilfe der Ausdrucksbaumstruktur herausfinden, welche Eigenschaften im Prädikat verwendet werden. Dann kann ich mein @ habPropertyChanged Handler ein bisschen intelligenter sein.

Meine Frage: ist das machbar? Wenn das Prädikat einfach ist (z. B.x => x.Age > 18), dann ist dieExpression scheint alles zu haben, was ich brauche. Gibt es Szenarien, in denen ich nicht sehen kann, auf welche Eigenschaften verwiesen wird?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage