Type.GetType("System.Integer") returns null value (Nothing)


VB in it’s classic state (pre .Net) had an Integer data type. So, in VB.Net you can still use Integer in the syntax (Dim x As Integer) but it will be using a System.Int32. Now, if you try to do a Type.GetType(“System.Integer”) it will return a null value whereas Type.GetType(“System.Int32”) will correctly return a type initialized to Int32. If you’re dynamically creating types then using the GetType to the appropriate CLR type is a must. Here are two links, one for .Net 3.5 and one for .Net 4.0 showing the data types.

  1. http://msdn.microsoft.com/en-us/library/47zceaw7(v=VS.90).aspx
  2. http://msdn.microsoft.com/en-us/library/47zceaw7(v=VS.100).aspx

For posterity, here is the table reference in case the above links stop working:

| Visual Basic type | Common language runtime type structure | Nominal storage allocation | Value range | | ----------------- | -------------------------------------- | -------------------------- | ----------- | | Boolean | Boolean | Depends on implementing platform | True or False | | Byte | Byte | 1 byte | 0 through 255 (unsigned) | | Char (single character) | Char | 2 bytes | 0 through 65535 (unsigned) | | Date | DateTime | 8 bytes | 0:00:00 (midnight) on January 1, 0001 through 11:59:59 PM on December 31, 9999 | | Decimal | Decimal | 16 bytes | 0 through +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9...E+28) † with no decimal point; 0 through +/-7.9228162514264337593543950335 with 28 places to the right of the decimal;

smallest nonzero number is +/-0.0000000000000000000000000001 (+/-1E-28) † | | Double (double-precision floating-point) | Double | 8 bytes | -1.79769313486231570E+308 through -4.94065645841246544E-324 † for negative values;

4.94065645841246544E-324 through 1.79769313486231570E+308 † for positive values
| | Integer | Int32 | 4 bytes | -2,147,483,648 through 2,147,483,647 (signed) | | Long (long integer) | Int64 | 8 bytes | -9,223,372,036,854,775,808 through 9,223,372,036,854,775,807 (9.2...E+18 †) (signed) | | Object | Object (class) | 4 bytes on 32-bit platform

8 bytes on 64-bit platform
| Any type can be stored in a variable of type Object | | SByte | SByte | 1 byte | -128 through 127 (signed) | | Short (short integer) | Int16 | 2 bytes | -32,768 through 32,767 (signed) | | Single (single-precision floating-point) | Single | 4 bytes | -3.4028235E+38 through -1.401298E-45 † for negative values;

1.401298E-45 through 3.4028235E+38 † for positive values
| | String (variable-length) | String (class) | Depends on implementing platform | 0 to approximately 2 billion Unicode characters | | UInteger | UInt32 | 4 bytes | 0 through 4,294,967,295 (unsigned) | | ULong | UInt64 | 8 bytes | 0 through 18,446,744,073,709,551,615 (1.8...E+19 †) (unsigned) | | User-Defined (structure) | (inherits from ValueType) | Depends on implementing platform | Each member of the structure has a range determined by its data type and independent of the ranges of the other members | | UShort | UInt16 | 2 bytes | 0 through 65,535 (unsigned) |

Leave a comment

Please note that we won't show your email to others, or use it for sending unwanted emails. We will only use it to render your Gravatar image and to validate you as a real person.