A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李阳Leo 中级黑马   /  2012-9-28 20:07  /  1815 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看ASP.NET生命周期视频中,反编译程序集后有这样一段代码
  1. private HtmlForm_BuildControlform1(){
  2.     HtmlForm form = new HtmlForm();
  3.     base.form1 = form;
  4.     form.ID = "form1";
  5.     HtmlInputText text = this.__BuildControltxtName();
  6.     IParserAccessor accessor = form;
  7.     accessor.AddParsedSubObject(text);
  8.     form.SetRenderMethodDelegate(new RenderMethod(this.__Renderform1));
  9.     return form;
  10. }
复制代码
这段代码讲的是控件树的创建
其中这一段
  1. IParserAccessor accessor = form;
  2. accessor.AddParsedSubObject(text);
  3. form.SetRenderMethodDelegate(new RenderMethod(this.__Renderform1));
  4. return form;
复制代码
它将HtmlForm这个类的对象转成了IParserAccessor接口,然后调用了这个接口中的AddParsedSubObject方法,最后返回了HtmlForm这个类的对象form

请问,把一个类转成一个接口,有什么用啊?

看这段代码的意思好像是两个指针指向同一块内存空间,其中任何一个对它的修改都可以在另一个上反应出来?

还有就是,为什么要把它转成接口?如果这个类实现了IParserAccessor接口的话,它不是也应该有接口中的方法吗?直接用该类的对象调用接口中的方法不行吗?



--

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

1 个回复

倒序浏览
通过把一个类转成一个接口就能将该类根据服务器控件和Html脚本的定义,把服务器控件和作为Literal控件的Html脚本插入到本Page的控件树上。

点评

请看清楚问题再回答,这样子看一眼问题,然后就想当然的把代码翻译成中文讲述一遍有什么意思?你还是回复你的“值得学习ing"吧。  发表于 2012-9-29 09:00
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马