关于MethodInfo.Invoke方法及Object与object区别的技术问询
关于C#中MethodInfo.Invoke和Object/object的疑问解答
1. 为什么MethodInfo可以调用Invoke方法?
你没记错,MethodInfo类本身确实没有定义Invoke方法,但它继承自MethodBase类,而Invoke(object, object[])方法是在MethodBase中定义的。所以MethodInfo实例可以直接调用这个方法。
另外代码里传入的"Hello, World!"是字符串类型,它是object的子类,所以可以直接作为第一个参数传入(第一个参数表示调用该方法的实例,对于实例方法来说必须传;如果是静态方法,这个参数传null即可)。
2. Object和object的区别
在C#里,这俩完全是一回事:
object是C#的关键字,它是System.Object的别名Object是System.Object的简写,前提是你的代码里已经引入了using System;命名空间
两种写法编译后的IL代码完全一样,只是编码风格的区别。团队或个人习惯用哪种都可以,没有功能上的差异。
内容的提问来源于stack exchange,提问作者Deva Raja
相关产品推荐
相关产品推荐

