我想从System.Web.UI.WebControls.WebControl
派生一个新类,但是我认为当你派生一个类时,你不会继承它的构造函数。
这导致的困难是这个类的一个构造函数有一个System.Web.UI.HtmlTextWriterTag
类型的参数,它定义了创建的控件/元素的html标记,并且没有办法在类之后设置它已经构建/初始化。
有没有人对如何解决这个问题有任何建议?
答案 0 :(得分:4)
这应该有所帮助: A Crash Course on ASP.NET Control Development: Deriving New Controls from Existing Classes
只需遵循此速成课程,您就会看到它有多简单。
答案 1 :(得分:3)
喜欢这个吗?
public class MyWebControl: WebControl
{
public MyWebControl(HtmlTextWriterTag tag) : base(tag)
{
}
}
答案 2 :(得分:1)
您需要将相同的构造函数添加到您自己的类型中。然后使用:base(...)来调用基础构造函数。
public MyType(ParamClass a)
:base(a)
{
}
只要:base(...)
的签名与基本类型构造函数的签名匹配,您也可以在类型和基类型之间使用非匹配签名。但是您只能使用表达式来定义传递给它的参数的值。所以你可能想要使用一些静态辅助方法。
答案 3 :(得分:0)
派生基类时,也会派生基类构造函数。您可以将HtmlTextWriter
类型传递给派生类ctr,并在派生类中将ctr定义为DervCtr(HtmlTextWriter) : base(HtmlTextWriter)