C# Reflection Type/MethodInfo
发布时间:2021-05-21 06:59:37 所属栏目:大数据 来源: https://www.jb51.cc
导读:C#反射 在C#的反射中,可以通过Type来执行类中的某个方法,也可以通过MethodInfo来执行方法 三种调用方法 下面的示例中使用了三种方法来执行方法 两个类:Class1和Demo1,通过反射执行Class1中的AddNum()方法和 反射执行Demo1中的Mult()方法 using System; S
C#反射在C#的反射中,可以通过Type来执行类中的某个方法,也可以通过MethodInfo来执行方法 三种调用方法下面的示例中使用了三种方法来执行方法 两个类:Class1和Demo1,通过反射执行Class1中的AddNum()方法和 反射执行Demo1中的Mult()方法 using System; System.Reflection; namespace MyReflection { public class Class1 { //将要反射的方法 int AddNum(int numb1,int numb2) { int sum = numb1 + numb2; return sum; } } Demo1 { static int Mult(return numb1 * numb2; } void Main(string[] args) { 获取Class1的Type Type class1Type = typeof(Class1); 本地或远程创建对象的实例 object obj = Activator.CreateInstance(class1Type); object[] mParam = new object[] { 5,10 };构造一个object数组作为参数 方法一:调用(invoke) 方法(AddNum),并传递参数 int result1 = (int)class1Type.InvokeMember("AddNum",BindingFlags.InvokeMethod,1)">null,obj,mParam); Console.Write(******直接调用方法******n {0} n"方法二 MethodInfo method = class1Type.GetMethod( BindingFlags.IgnoreCase); int result2 = ()method.Invoke(obj,mParam); Console.WriteLine(*******使用MethodInfo*********n {0}n方法三:本类的方法 修饰符为static MethodInfo method1 = Type.GetType(MyReflection.Demo1").GetMethod(Mult");这里需要加上NameSpace int mult = (int)method1.Invoke(*****本类中的方法***** n{0}nMethodInfo method = type.GetMethod( funcName,BindingFlags.IgnoreCase | BindingFlags.Static | BindingFlags.Public ); (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |