Asp.net
為什麼使用 VB.NET 在 ASP.NET 中創建按鈕點擊事件是私有的還是受保護的?
我從來沒有認真考慮過的事情,但我很好奇,想了解實際的推理。在使用VB.NET的 ASP.NET 中,您可以通過 2 種不同的方式定義連接按鈕點擊事件(到 ASP.NET 伺服器控制項)(出於本次對話的目的 - 通過此處沒有問題的按鈕屬性手動連接) :
- 點兩下設計器中的按鈕,該按鈕使用受保護的方法在後面的程式碼中產生一個事件。
- 在後面的程式碼中,從控制項列表中選擇按鈕,然後選擇它的“點擊”事件。這會產生一個Private方法。
我了解Private 和 Protected 之間的區別;這不是問題所在。我只是想知道為什麼基於連接事件是如何自動創建它會在方法上生成不同的訪問級別的實際原因(請不要猜測或推測)?
謝謝!
在控制項本身中聲明時它受到保護的原因是 .aspx 被動態編譯為從程式碼隱藏繼承的類,因此如果它是私有的,它將看不到該方法。當事件在內部分配給程式碼隱藏時,顯然可以訪問私有成員。
兩者都是有效的方法,只是取決於你想如何給貓換皮,如果一個控制項是動態創建的,你可能必須在程式碼隱藏中分配事件,所以需要有這種機制。