首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

刚刚学习类反射,请帮忙看看哪里写错了?解决方案

2012-02-01 
刚刚学习类反射,请帮忙看看哪里写错了?C# codeusing Systemusing System.Collections.Genericusing Syst

刚刚学习类反射,请帮忙看看哪里写错了?

C# code
using System;using System.Collections.Generic;using System.Text;using System.Reflection;namespace refent{    class Program    {        static void Main(string[] args)        {            Type tp = Type.GetType("FanShe");            object o = Activator.CreateInstance(tp);    //创建实例            MethodInfo mi = tp.GetMethod("xxx");        //反射方法            object ret = mi.Invoke(o, null);            //执行方法            string str = ret.ToString();                //获取结果        }        public double Area()        {            return 2.0 * 3.0;        }    }    class FanShe    {    }}


刚刚学习类反射,请帮忙看看哪里写错了?

[解决办法]
C# 
public Object Invoke (
Object obj,
Object[] parameters
)
 
参数
obj
对其调用方法或构造函数的对象。如果方法是静态的,则忽略此参数。如果构造函数是静态的,则此参数必须为空引用(在 Visual Basic 中为 Nothing) 或定义该构造函数的类的实例。 

parameters
调用的方法或构造函数的参数列表。这是一个对象数组,这些对象与要调用的方法或构造函数的参数具有相同的数量、顺序和类型。如果没有任何参数,则 parameters 应为空引用(在 Visual Basic 中为 Nothing)。

如果此实例所表示的方法或构造函数采用 ref 参数(在 Visual Basic 中为 ByRef),使用此函数调用该方法或构造函数时,该参数不需要任何特殊属性。如果数组中的对象未用值来显式初始化,则该对象将包含该对象类型的默认值。对于引用类型的元素,该值为空引用(在 Visual Basic 中为 Nothing)。对于值类型的元素,该值为 0、0.0 或 false,具体取决于特定的元素类型。 



返回值
一个对象,包含被调用方法的返回值,如果调用的是构造函数,则为空引用(在 Visual Basic 中为 Nothing)。

O是FanShe类的实例,null是方法xxx需要的参数数组,因为xxx无参数,所有为null
:-)
[解决办法]
探讨
C#
public Object Invoke (
Object obj,
Object[] parameters
)

参数
obj
对其调用方法或构造函数的对象。如果方法是静态的,则忽略此参数。如果构造函数是静态的,则此参数必须为空引用(在 Visual Basic 中为 Nothing) 或定义该构造函数的类的实例。

parameters
调用的方法或构造函数的参数列表。这是一个对象数组,这些对象与要调用的方法或构造函数的参数具有相同的数量、顺序和类型。如果没有任何参…

热点排行