4
有什麼區別和對代碼的影響?MethodBase.GetCurrentMethod()。名稱與[CallerMemberName]
怎麼樣的性能和限制,什麼會更合適?
新屬性:
- [CallerFilePathAttribute]
- [CallerMemberName]
- [CallerLineNumber]
今天他們也是.NET 4可用的(很容易地開發,似乎魔法)..它們的值在運行時被編譯或解析?
你需要什麼來使用它們?如果它們用於在異常期間報告堆棧跟蹤信息,則性能應該有點不相關。如果您使用它們來整個應用程序,那完全是另一回事。 –
它們編譯爲:[「調用者信息值在編譯時以文字形式發送到中間語言(IL)中。」](http://msdn.microsoft.com/zh-cn/library/hh534540.aspx)編輯:性能明智,我從來沒有基準測試或大量使用它們,但我會懷疑它應該相當小,因爲大部分工作都是在編譯時完成的。 (雖然不確定性能問題或超級問題,但是使用基於反射的方法(如StackTrace或MethodBase.GetCurrentMethod())可能容易受到方法內聯或混淆。 –