Shadow en C# - comment "changer" le type d'une propriété dans une classe dérivée
Dans certains projet on aimerait bien pouvoir changer le type d'une propriété. Je pense notamment dans le cas ou vous faites un site en asp.net, le premier reflexe est de créer ses propres Pages, UserControle et MasterPage en dérivant des controles de base !
Mais ce qui serait bien c'est que dans vos UserControles la propriété page soit du type MonProjet.Web.UI.Page plutot que System.Web.UI.Page
voici l'astuce qui permet justement de "changer" de changer le type de la propriété tout en gardant le meme nom :
namespace
monProjet.Web.UI
{
public class UserControl : CSLib.Web.UI.
UserControl {
public virtual new monProjet.Web.UI.
Page Page
{
get {
return (monProjet.Web.UI.
Page)
base.Page; }
}
}
}
Maintenant dans vos UC la propriété page sera du type MonProjet.Web.UI.Page =)
Pour ceux qui font du VB.net :
Namespace
monProjet.Web.UI
Public Class UserControl
Inherits CSLib.Web.UI.UserControl
Public Shadows ReadOnly Property Page()
As monProjet.Web.UI.Page
Get
Return CType(
MyBase.Page, monProjet.Web.UI.Page)
End Get
End Property
End Class
End Namespace