如何使用.NET反射来确定方法返回类型(包括void)和参数?

Lou*_*hys 8 .net c# reflection void

如何知道参数的数量和类型?

怎么知道返回类型?

如何检查返回类型是否为空?

Jon*_*eet 25

使用MethodInfo.ReturnType来确定返回类型,并MethodBase.GetParameters()找出有关的参数.(MethodInfo源自MethodBase,所以一旦你获得了MethodInfo通道Type.GetMethod等,你可以使用ReturnTypeGetParameters().)

如果方法是void,返回类型将是typeof(void):

if (method.ReturnType == typeof(void))
Run Code Online (Sandbox Code Playgroud)

  • @Chris:不是 - 它真的是一种占位符类型.为ReturnType之类的东西准确地表示一个类型是有用的. (4认同)
  • 我没有意识到System.Void是一个实际的类型 - 这是否意味着具有void返回类型的方法具有在IL中返回的实际值? (2认同)