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

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

2Type类,方法用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);//带参数的

        }

    }

}

 

转载于:https://www.cnblogs.com/xcl461330197/articles/4539460.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值