这篇文章主要为大家展示了".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 #怎么利用反射调用含裁判或出参数”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!