在C#4.0中我做了以下內容:在屬性的集合{}方法獲取屬性名
public string PropertyA
{
get;
set
{
DoSomething("PropertyA");
}
}
public string PropertyB
{
get;
set
{
DoSomething("PropertyB");
}
}
..我有很多的這些特性,並做手工將是一個痛苦。有沒有辦法,我可以用這個替換:
public string PropertyA
{
get;
set
{
DoSomething(GetNameOfProperty());
}
}
..可能使用反射?
現在它沒有什麼幫助,但是C#6將具有'nameof'運算符,它將執行類似於您正在查找的內容以及編譯時檢查。 (可以想象,你仍然需要在任何地方編寫屬性名兩次,但編譯器會告訴你是否在某處出現拼寫錯誤。) – 2014-09-03 12:09:12
聽起來像是一個XY問題 - 你想通過這樣做來解決什麼問題? – Sayse 2014-09-03 12:10:07
@Sayse聽起來不像我。這是實現'INotifyPropertyChanged'的常用模式。 – hvd 2014-09-03 12:11:31