看ASP.NET生命周期视频中,反编译程序集后有这样一段代码- private HtmlForm_BuildControlform1(){
- HtmlForm form = new HtmlForm();
- base.form1 = form;
- form.ID = "form1";
- HtmlInputText text = this.__BuildControltxtName();
- IParserAccessor accessor = form;
- accessor.AddParsedSubObject(text);
- form.SetRenderMethodDelegate(new RenderMethod(this.__Renderform1));
- return form;
- }
复制代码 这段代码讲的是控件树的创建
其中这一段- IParserAccessor accessor = form;
- accessor.AddParsedSubObject(text);
- form.SetRenderMethodDelegate(new RenderMethod(this.__Renderform1));
- return form;
复制代码 它将HtmlForm这个类的对象转成了IParserAccessor接口,然后调用了这个接口中的AddParsedSubObject方法,最后返回了HtmlForm这个类的对象form
请问,把一个类转成一个接口,有什么用啊?
看这段代码的意思好像是两个指针指向同一块内存空间,其中任何一个对它的修改都可以在另一个上反应出来?
还有就是,为什么要把它转成接口?如果这个类实现了IParserAccessor接口的话,它不是也应该有接口中的方法吗?直接用该类的对象调用接口中的方法不行吗?
--
|