。net/c#怎么利用反射调用含裁判或出参数

  介绍

这篇文章主要为大家展示了".NET/C #怎么利用反射调用含裁判或出参数”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下”。NET/C #怎么利用反射调用含裁判或出参数”这篇文章吧。

<强>反射的用途:

(1)使用装配定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。

(2)使用模块了解包含模块的程序集以及模块中的类等,还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。

(3)使用ConstructorInfo了解构造函数的名称,参数,访问修饰符(如大众或私人)和实现详细信息(如抽象或虚拟)等。

(4)使用MethodInfo了解方法的名称,返回类型,参数,访问修饰符(如大众或私人)和实现详细信息(如抽象或虚拟)等。

(5)使用FiedInfo了解字段的名称,访问修饰符(如公共或私人)和实现详细信息(如静态)等,并获取或设置字段值。

(6)使用EventInfo了解事件的名称,事件处理程序数据类型,自定义属性,声明类型和反射类型等,添加或移除事件处理程序。

(7)使用PropertyInfo了解属性的名称,数据类型,声明类型,反射类型和只读或可写状态等,获取或设置属性值。

(8)使用ParameterInfo了解参数的名称,数据类型,是输入参数还是输出参数,以及参数在方法签名中的位置等。

然而,如果方法的参数中包含裁判或从关键字的时候,又该怎么调用呢?

<强>本文将介绍如何反射调用含裁判或从关键字的方法。

比如我们有这样的类型:

public  class  Walterlv   {   ,public  string  Get (string 键)   ,{   ,}   }

那么反射的时候可以使用:

var  walterlv =, new  Walterlv ();   var  value =,(字符串),typeof (Walterlv) .GetMethod (“Get") .Invoke (Walterlv, new 对象[],{,“key",});

然而现在我们的函数是这样的,带一个出来关键字的参数:

public  class  Walterlv   {   ,public  bool  TryGet (string 关键,,out  string 价值)   ,{   ,}   }

事实上,无论是什么样的方法,在反射式调用的都是同一个方法,即调用。

对于出和ref关键字的方法来说,会更新传入的数组,也就是调用最后传入的那个参数,所以其实我们只需要保存那个数组的实例,在调用完毕之后便能重新取出被修改的参数了。

var  walterlv =, new  Walterlv ();   var  args =, new 对象[],{,“key",, null };   var  value =,(字符串),typeof (Walterlv) .GetMethod (“Get") .Invoke (Walterlv, args);//,在这里可以从,args 里面取出被,ref 或者,out 修改的参数。

以上是".NET/C #怎么利用反射调用含裁判或出参数”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

。net/c#怎么利用反射调用含裁判或出参数