1、首先说明一下部分类这个概念
2、建类的注意事项;
3、一个命名空间下边是不能有两个名字相同的类:但是你将其中一个添加在这个空间下的不同文件夹下,又是可以的~!!只是在用类的时候,是要区分用哪个类了!
4、总结::在同一个命名空间下的部分类,在编译的过程中,会将两连个部分类合并。。
5、说明一下关系
6、接下来,首先,下面做一个多态类的反射练习,有助于理解本结课内容的。
创建一个父类:
创建一个子类:child 继承 父类 parent
返回主程序:
运行结果:
可以看出来,,第一个是子类的名字,第二个是子类的父类的名字;第三个是父类 所在的程序集路径信息;
可以在反编译工具中进行查看:(在IL中输入地址就行了)
下面接着分析asp这个类.可以看出来其中的奥秘,aspx其实就是做了一个html的拼接的处理~!!
1)为什么可以再aspx中页面中写C#代码呢?其实本段代码最后编译生成到一个类中,接着for()循环语句也是被生成到了这个类中,看图:
查看如下:
接着仔细的分析后发现:
aspx中写的“=”被编译成了response.write();了;
接着分析aspx这个文件:实现了IHttpHandler这个接口,就可以看做是实现了HttpHander这个接口,接着就理解了,aspx只不过是特殊的一般处理程序;
总结:
1、部分类
2、aspx文件会最终编译生成了 一个类,在源代码中是看不到的,在反编译工具中是可以看到的~!!
3、在aspx文件中写的控件,包括自己写的html代码,都可以看做是做了一个拼接字符串的处理~!!
4、在反编译工具中,aspx文件会最终编译生成了 一个类,继承了aspx.cs这个类(ASPTest1),《简单理解就是说asp这个编译生成类,是aspx.cs这个类的子类》,,,,所以aspx.cs这个类中修饰符至少是protected级别的,这样子类aspx才可以访问父类中的成员~!!
3、反编译中的_w.Write() 中的_w相当于response