你能用反射來(lái)找到當(dāng)前正在執(zhí)行的方法的名稱嗎?就像標(biāo)題所說(shuō):反射可以為您提供當(dāng)前正在執(zhí)行的方法的名稱。由于海森堡的問(wèn)題,我傾向于不猜。如何在不改變當(dāng)前方法的情況下調(diào)用一種方法來(lái)告訴您當(dāng)前的方法?但是我希望有人可以在那里證明我的錯(cuò)。更新:第2部分:這可以用來(lái)查看屬性的內(nèi)部代碼嗎?第3部分:性能如何?最終結(jié)果我了解了MethodBase.GetCurrentMethod()。我還了解到,我不僅可以創(chuàng)建堆棧跟蹤,而且如果需要,我只能創(chuàng)建我需要的確切幀。要在屬性中使用它,只需使用.Substring(4)刪除'set_'或'get_'。
3 回答

開(kāi)滿天機(jī)
TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
從.NET 4.5開(kāi)始,您還可以使用[CallerMemberName]
示例:屬性設(shè)置器(回答第2部分):
protected void SetProperty<T>(T value, [CallerMemberName] string property = null) { this.propertyValues[property] = value; OnPropertyChanged(property); } public string SomeProperty { set { SetProperty(value); } }
編譯器將在callites中提供匹配的字符串文字,因此基本上沒(méi)有性能開(kāi)銷。
- 3 回答
- 0 關(guān)注
- 509 瀏覽
添加回答
舉報(bào)
0/150
提交
取消