??xml version="1.0" encoding="utf-8" standalone="yes"?>棒球比分直播比分:BlogJava-紫蝶∏飛揚↗-文章分类 - 棒球比分大小怎么算|վ//www.355548.live/algz/category/53929.htmlPurple Butterfly Flying QQ?7101519 Flex,Ext,Spring,Hibernate,EOS,SpringSecurity,Struts //algz.googlecode.com/svn/trunk/zh-cnWed, 25 Sep 2013 07:57:15 GMTWed, 25 Sep 2013 07:57:15 GMT60反射生成W记 - 棒球比分大小怎么算|վ//www.355548.live/algz/articles/404420.html紫蝶∏飛揚↗紫蝶∏飛揚↗Wed, 25 Sep 2013 07:40:00 GMT//www.355548.live/algz/articles/404420.html//www.355548.live/algz/comments/404420.html//www.355548.live/algz/articles/404420.html#Feedback0//www.355548.live/algz/comments/commentRss/404420.html//www.355548.live/algz/services/trackbacks/404420.html
//*********创徏实例***********
Type t = typeof(ClassTest);//表示cd声明Q类cd、接口类型、数l类型、值类型、枚丄型、类型参?..?/span>
object obj = Activator.CreateInstance(t);//通过反射创徏对象实例,如果是静态类则不d例化
//obj = ass.CreateInstance("ReflectionTest.ClassTest"); //cȝ全限定名.命名I间.cd
//*********创徏和调用方?**********
MethodInfo method = t.GetMethod("WriteString"); //搜烦h指定名称的公共方法?/span>
String s = (String)method.Invoke(obj, new Object[] { "123" });//反射cȝ对象实例,Ҏ参数 
//静态方?/span>         
method = type.GetMethod("StaticWriteString");
method.Invoke(nullnew string[] { "test" }); //如果是静态方?W?个参数则忽略,设ؓnull  
 
//无参的静态方?/span>
method = type.GetMethod("NoneParaWriteString");  
method.Invoke(nullnull);//无参则第2个参数设为null.
 
System.Diagnostics.Trace.WriteLine(s);//输出?调试--H口--xH口"
 
C#反射学习时几Ҏ意内容:
1Q指定类库文件必M用绝对\径,不能使用相对路径Q其实感觉有点不合理Q不太方便)
3Q第5行如果反的cM用的是静态方?则第1个参数须调ؓnull?/span>
4Q由于这个方法有两个参数Q可以用q种Object的方法指定参C可以直接写method.Invoke(obj, new Object[] { "test", 1 });
5Q调用的Ҏ是一个静态方法,q时候Invoke的时候,对于W一个参数是无视的,也就是我们写什么都不会被调用,即我们随便new了一个anyq样的ObjectQ当然这U写法是不推荐的。但是对应在例子1U我们如果Invoke的时候用了类型不一致的实例来做为参数的话,会D一个运行时的错误?/span>
6Q第三个例子是一个调用无参数静态方法的例子Q这时候两个参数我们都不需要指定,用null可以了?/span>
再说一个问题,如果调用的类是静态类的时候,需要注意一个问题,肯定我们会想C个问题,静态类是不能实例化的,q时候,31行的cȝ实例化的Ҏ我们׃需要了Q直接用Invoke可以实玎ͼ否则会出现q行时的错误Q同L道理Q第一个参数将会被无视Q只要我们传对了参数可以了?/span>


棒球比分大小怎么算 2013-09-25 15:40 发表评论
]]>
{ganrao}