この質問が適切に策定されていない場合は、私にご負担ください。知らないことは問題の一部です。C#のプロパティ自体を参照してください。反射?ジェネリック?タイプ?
私が達成したいことの例は、WPFのPropertyChangedEventArgsにあります。あなたはプロパティがWPFに変更されたフラグにしたい場合は、このようにそれを実行します。
PropertyChanged(this, new PropertyChangedEventArgs("propertyName"));
あなたが変更プロパティ名を指しPropertyChangedEventArgsへ文字列を渡します。
私のコード全体にプロパティ名のハードコーディングされた文字列が本当に必要ではないことが想像できます。リファクタリング・リネームはそれを逃してしまいます。そのため、審美的には魅力的ではなく、エラーが発生しやすくなります。
というよりむしろは、その性質自体を参照してください ...なんとか。
PropertyChanged(this, new PropertyChangedEventArgs(?SomeClass.PropertyName?));
私はこれを上記のような短い方法で包むことができるようです。
private void MyPropertyChanged(??) {
PropertyChanged(this, new PropertyChangedEventArgs(??.ToString()??));
}
... so I can say something like:
MyPropertyChanged(Person.Name); //where I'm interested in the property *itself*
これまでのところ、私は空白を描いています。
も参照してください。http://stackoverflow.com/questions/388775/how-do-i-get-the-name-of-a-property-from-a-property-in-c-2-0 –
http ://weblogs.asp.net/cazzu/archive/2006/07/06/Linq-beyond-queries_3A00_-strong_2D00_typed-reflection_2100_。aspx –
[lambda式を使用してメソッド名と型を取得する]の可能な複製(http://stackoverflow.com/questions/273941/get-method-name-and-type-using-lambda-expression) – nawfal