2014-01-20 2 views
2

Я изо всех сил думать о реальном мире использование C# 5's Caller Information featureПримеры решений с использованием C# 5 информации о вызывающем абоненте

В каких сценариях вы должны знать, кто назвал свой метод? Какие другие способы использования у него есть, кроме отслеживания и, возможно, отладки?

Является ли это реализацией аспектно-ориентированного программирования?

+0

Один возможный сценарий, на который только что ответил @JonSkeet: http://stackoverflow.com/questions/21230580/passing-a-methods-name-as-a-parameter –

+0

@ArinGhazarian Это уже упоминалось в самом вопросе –

+0

Это не АОП , это просто, когда вам нужно что-то подобное, вы можете использовать AOP или информацию о вызывающем абоненте. – svick

ответ

8

Очень хорошее использование для CallerMemberName при работе с WPF и привязкой данных.

private void OnPropertyChanged([CallerMemberName] string propertyName = null)

является удобным для реализации INotifyPropertyChanged.

2

Я не уверен, является ли это АОП, но для меня это очень полезно при внедрении INotifyPropertyChanged. На самом деле Microsoft действительно дает хороший образец о разнице между 4.0 и 4.5:

4.5: http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx

4.0: http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged(v=vs.100).aspx

это очень полезно, особенно, когда вы делаете много привязки данных, либо в WPF или WinForm , это уменьшает использование ошибки, подверженной жесткому кодированию имени свойства, хотя вы можете использовать отражение для достижения аналогичного поведения.

Смежные вопросы