前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >动态调用类中的方法(无)(有)参数

动态调用类中的方法(无)(有)参数

作者头像
静心物语313
发布2020-03-24 15:24:04
2.6K0
发布2020-03-24 15:24:04
举报

1、Type类,方法用Invoke调用的时候就 使用null:表示该方法是无参数的

2、Type类,方法用Invoke调用的时候就 使用new object[] { "肖名" }传递参数:表示该方法是有参数的

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
 
namespace 动态调用类中的方法
{
    class Program
    {
        static void Main(string[] args)
        {
            #region Type类,方法用Invoke调用的时候就 使用null:表示该方法是无参数的
            //Type tp = typeof(Person);
            //MethodInfo meth = tp.GetMethod("Say");//2、调用这个类中的Say方法,,注意:没有参数!!!
            //object obj = Activator.CreateInstance(tp);//4、创建object对象,把tp放进去,就会返回一个Person的对象
 
            //meth.Invoke(obj, null);  //     当在派生类中重写时,调用具有给定参数的反射的方法或构造函数。
            ////5、也就是说,调用的方法Say(),是没有参数的,那么在用Invoke调用的时候就 使用null:表示该方法是无参数的
            ////3、先写上一个括号,发现,第一个参数是object 类型的,没有object类型,所以要先创建object类型 
            #endregion
 
            #region Type类,方法用Invoke调用的时候就 使用new object[] { "肖名" }传递参数:表示该方法是有参数的
            Type tp = typeof(Person);
            MethodInfo meth = tp.GetMethod("Say");
            object obj = Activator.CreateInstance(tp);
            meth.Invoke(obj, new object[] { "肖名" });//new object[]是object类型  ,就是方法Say()的传递的参数 String Str
            Console.ReadKey(); 
            #endregion
        }
    }
    public class Person//1首先,建一个类
    {
        //public void Say()// null的时候的方法,表示是无参数的方法Say
        public void Say(string Str)
        {
            //Console.WriteLine("大家好!");
            Console.WriteLine("大家好!"+Str);//带参数的
        }
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档