黑马程序员技术交流社区

标题: 反射问题 [打印本页]

作者: 范德农    时间: 2013-5-14 18:47
标题: 反射问题
两个代码片断
                    for (int i = 0; i < parInfos.Length; i++)
                    {
                        //objPars[i] = assembly.CreateInstance(parInfos[i].ParameterType.FullName); //#1
                        if (parInfos[i].ParameterType.FullName == "System.String")
                        {
                            objPars[i] = "Lee";
                        }
                    }






                        for (int i = 0; i < parInfos.Length; i++)
                        {
                            //objPars[i] = assembly.CreateInstance(parInfos[i].ParameterType.FullName); //#2
                            if (parInfos[i].ParameterType.FullName == "System.String")
                            {
                                objPars[i] = "Lee XiaoMing";
                            }
                            if (parInfos[i].ParameterType.FullName == "System.Int32")
                            {
                                objPars[i] = 22;
                            }
                        }




我发现#1 和#2 这两句要不要程序都正常,请问这2句是什么意思?有什么作用呢
作者: 赵崇友    时间: 2013-5-14 18:58
没错,没有这两句程序可以正常运行。
不过运行的结果就不同了:
1、//objPars[i] = assembly.CreateInstance(parInfos[i].ParameterType.FullName); //#1  这个片段是为了创建parInfos[i].ParameterType.FullName不是System.String时的对象,如果省略了这句,当parInfos[i].ParameterType.FullName不是System.String时,objPars[i]就是空的了,并没有对象。
2、和第一种情况一样。不多说了





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2