.net学****心得第一篇:.:中的重要机制,中每一个类型,包括类、结构、委托和枚举的成员,包括方法、属性、事件,以及构造函数等。有了反射,既可以对每一个类型了如指掌。下面来演示一下反射的实例(1)新建一个类库项目。在解决方案上单击右键选择添加“新建项目”,在弹出来的框中选择“类库”,在下面名字栏中输入classlib。然后删除class1类,新添加一个类“classperson”,添加如下代码:namespaceclasslib{lassclassperson{lassperson():this(null){}lassperson(stringstrname){name=strname;}privatestringname;privatestringsex;privateintage;publicstringname{get{returnname;}set{name=value;}}publicstringsex{get{returnsex;}set{sex=value;}}publicintage{get{returnage;}set{age=value;}}publicvoidsayhello(){if(null==name)(“helloworld”);(“hello,”+name);}}}添加完之后编译生成一下,。然后添加一个控制台应用程序。。添加的代码如下:usingsystem;;;;;//添加反射的命名空间namespaceconsoleapplication4{lassprogram{staticvoidmain(string[]args){(“列出程序集中的所有类型”);assemblyass=(“”);type[]mytype=();typeclassperson=null;foreach(typepinmytype){();if(==“classperson”){classperson=p;}}(“列出classpersonl类中的所有的方法”);methodinfo[]md=();foreach(methodinfominmd){();}(“实例化classperson类,并调用sayhello方法”);objectobj=(classperson);objectobjname=(classperson,”飞鹰”);methodinfomysayhello=(“sayhello”);(obj,null);//(objname,null);//();}}}运行之后的结果是:列出程序集中的所有类型classperson列出classpersonl类中的所有的方法get_nameset_nameget_sexset_sexget_ageset_agesayhellotostringequalsgethashcodegettype实例化classperson类,并调用sayhello方法helloworldhello,(1)引入命名空间,如:usingsystem。(2)using别名。格式:using别名=包括详细命名空间信息的具体的类型例如:在两个命名空间(namespace1,namespace2)里各有一个myclass类,这时可以这样引入命名空间,usingaclass=;usingbclass=;实例化时:aclassmy1=newaclass;bclassmy2=newbclass;(3)using定义范围即时释放资源,在范围结束时处理对象
.net学习心得 来自淘豆网www.taodocs.com转载请标明出处.