zoukankan      html  css  js  c++  java
  • c#输入方法名来调用方法(反射)

    https://www.cnblogs.com/sanyejun/p/8575458.html

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Reflection;
    using System.Text;
    using System.Threading.Tasks;

    namespace zhiXing
    {
    class Program
    {
    static void Main(string[] args)
    {
    //方法1
    /*
    Type t = typeof(TestA);
    MethodInfo mt = t.GetMethod("My");
    TestA ta = new TestA();
    string str = (string)mt.Invoke(ta, new object[] { 5 });
    */

    //方法2
    //加载程序集
    Assembly s = Assembly.Load("zhiXing");
    //得到类
    Type tpe = s.GetType("zhiXing.TestA");
    //得到方法
    MethodInfo method = tpe.GetMethod("My");
    //安全判断
    {
    //获取需要传入的参数
    ParameterInfo[] parms = method.GetParameters();
    //这里是判断参数类型
    foreach (ParameterInfo ss in parms)
    {
    if (ss.ParameterType == typeof(int))
    {
    Console.WriteLine("参数类型匹配");
    }
    else
    {
    Console.WriteLine("参数类型不匹配");
    }
    }
    }
    //获取 类的对象
    object obj = s.CreateInstance("zhiXing.TestA");
    //调用
    method.Invoke(obj, new object[] { 5 });

    }
    }

    public class TestA
    {
    public void My(int a)
    {
    Console.WriteLine("哈哈哈哈哈" + a);
    Console.ReadKey();
    }
    }

    }

  • 相关阅读:
    web项目获取spring的applicationContext方式一
    idea关于tomcat中文乱码问题
    java面试题02
    JDBC连接步骤(三)
    JDBCAPI简介(二)
    JDBC简介(一)
    Maven(三)archetype
    如何javaSwing关闭子窗口不关闭父窗口
    Java中Object转化为int类型
    java double转int
  • 原文地址:https://www.cnblogs.com/zcm123/p/9067997.html
Copyright © 2011-2022 走看看