How to test if MethodInfo.ReturnType is type of System.Void?

You can’t use System.Void directly, but can access it using typeof(void).

Several people point out (here and in the comments here for example) that the reason for this is that the ECMA Standard 335, Partition II, section 9.4 says:

The following kinds of type cannot be
used as arguments in instantiations
(of generic types or methods):

  • Byref types (e.g., System.Generic.Collection.List 1<string&>
    is invalid)
  • Value types that contain fields that can point into the CIL
    evaluation stack (e.g.,List<System.RuntimeArgumentHandle>)
  • void (e.g., List<System.Void> is invalid)

Leave a Comment