The common type system in the common language runtime is the component that
defines how data types are declared and used. The common language runtime’s
capability to support cross-language integration to the level it does is largely due to
the common type system. In the past, each language used its own data types and
managed data in its own way. This made it difficult for applications developed in
different languages to communicate, because no standard way existed for passing
data between them.
More...