[英]C# Get Name of Derived Type from Inside base Class
在調試會話期間,在特定實例的調試信息中識別實際派生類的名稱對我來說很重要。
我嘗試使用this.GetType().Name
但這只是返回base
類的類型。
有沒有一種簡單的方法可以從基類中獲取派生類的類型?
this.GetType().Name
應該可以工作。 我認為,就您而言,您可能沒有派生類。 如果它返回基類名稱,它不應該有派生類。
使用這個:
this.GetType().Name
總是返回當前執行類型的名稱,而不是編寫它的代碼的類型。不過,您可以模擬斷點,以有條件的方式使用Debugger.Break()
:
if (this.GetType().Name == "Problematic type")
System.Diagnostics.Debugger.Break();
在調試會話期間...
請記住,與其暫停會話以添加一些丟棄的代碼然后重新編譯並重新啟動,不如使用調試器來預測斷點被擊中后......
通過利用調試器的Immediate Window
並鍵入相關實例的this.GetType().Name
,然后按Enter ,它將顯示出來。
請參閱 VS Docs: 立即窗口
有沒有一種簡單的方法可以從基類中獲取派生類的類型?
是的,例如,我可以通過使用GetType
的Name
屬性實時確定異常是什么:
引發事件時,請務必將真實的發送者傳遞給發送者屬性。 監聽類中的發送者對象應正確指向引發事件的子類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.