温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ASP.NET中的三个基类是什么

发布时间:2021-07-15 10:33:18 来源:亿速云 阅读:128 作者:chen 栏目:编程语言

这篇文章主要介绍“ASP.NET中的三个基类是什么”,在日常操作中,相信很多人在ASP.NET中的三个基类是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ASP.NET中的三个基类是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一般我们撰写ASP.NET控件都是继承Framework 已有三个ASP.NET基类,Control,WebControl,CompositeControl,它们之间的关系大家都很清楚。

下面我就各个ASP.NET基类的呈现方法作一些简单的说明:


Control,主要有以下4个方法用于呈现:

protected internal virtual void Render  (HtmlTextWriter writer)   {   this.RenderChildren();   }   protected internal virtual void   RenderChildren(HtmlTextWriter writer)   {   //呈现子控件   }   public virtual void RenderControl  (HtmlTextWriter writer)   {   //该方法为入口方法   this.RenderControl(writer,this.xxxAdapter);   }   protected void RenderControl(HtmlTextWriter   writer, ControlAdapter adapter)   {   if (adapter != null)   {   //调用相关的适配器方法   }   else   {   this.Render(writer);   }   } 整个呈现顺序就是:   1.RenderControl(HtmlTextWriter writer)   2.RenderControl(HtmlTextWriter writer,   ControlAdapter adapter)   3.Render(HtmlTextWriter writer)   4.RenderChildren(HtmlTextWriter writer)

概念上理解就是:

1.控件开始呈现

2.控件是否有相关的呈现适配器,有的话就适配器调用适配器的相关呈现方法

3.呈现子控件

4.完成控件呈现

题外话:关于控件适配器我基本上没用过,不过可以学习这个手法,怎么样在一个类中添加新功能而不影响原代码,既OO的基本设计原则之一 优先使用组合。

WebControl:在Control的基础上增加了Style,呈现方面就是在Render(HtmlTextWriter writer) 方法中扩展了三个呈现方法,增加一个属性呈现方法, 伪代码如下:

publicvirtualvoidRenderBeginTag  (HtmlTextWriterwriter)  {  this.AddAttributesToRender(writer);  //呈现Tag开始标记  }   protectedoverridevoidRender(HtmlTextWriterwriter)  {  //重写了Control的Render方法并增加了三个扩展方法  this.RenderBeginTag(writer);  this.RenderContents(writer);  this.RenderEndTag(writer);  }  protectedinternalvirtualvoidRenderContents  (HtmlTextWriterwriter)  {  //调用Control的呈现  base.Render(writer);  }   publicvirtualvoidRenderEndTag(HtmlTextWriterwriter)  {  //呈现结束标记  }   protectedvirtualvoidAddAttributesToRender  (HtmlTextWriterwriter)  {  //呈现Attribute  }  CompositeControl重写了WebControl的Render  (HtmlTextWriterwriter),  增加了设计时支持以创建子控件   protectedinternaloverridevoidRender(HtmlTextWriterwriter)  {  //如果在设计时,创建子控件,也就是在设计时增加友好体验  if(DesignMode)  this.EnsureChildControls();  base.Render(writer);  }

到此,关于“ASP.NET中的三个基类是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI