If I talk about .NET then what is CTS aka Common Type System?
Introduction
Every language (in .Net Framework) has its own data types that are represented by a class or structure and collection of all the classes and structures related to data types called Common Type System (CTS).
Every language provides its own keywords for data types but internally all the languages that run under the .NET framework use the classes and structures available in the CTS.
For example, C# has the int data type and VB.Net has the Integer data type. Hence a variable declared as an int in C# or Integer in vb.net, and finally, after compilation, use the same structure "int32" from the CTS.
Motive
All the structures and classes available in the CTS are common for all .NET Languages and the purpose of these is to support language independence in .NET, so this motive is resolved by the CTS.
Explanation with a real example: To explain the CTS I will create 2 console applications in 2 different languages:
- VB.Net
- C#
VB.Net
Step 1: Create first a Console application in VB.Net named "ConsoleApp_VB".
Step 2: Create a variable of Integer type and assign a value, like 10, and build the application, that generates the .exe file in the bin folder of the project.
Step 3: Open "IL Disassembler" by selecting the Start menu then "Microsoft Visual Studio 2010" -> "Microsoft Windows SDK Tools".
Note: I am using Visual Studio 2010.
Step 4: Open your .exe file that exists in the bin folder of the project via "File" -> "Open".
Step 5: The .exe file loads in "IL Disassembler" after the selection, that will look like :
Step 6: Now double-click on the "Main" method that shows the following window where you can see your variable "i" that was Integer type and now it converts into "int32".
C#
Now I will do the same process from Step 1 to Step 6 for C#.
Step 1: Create the first Console application in C# named "ConsoleApp_CS".
Step 2: Create a variable of int type and assign a value like 10 and build the application that generates the .exe file in the bin folder of the project.
Step 3: Again open the "IL Disassembler" by selecting the Start menu then "Microsoft Visual Studio 2010" -> "Microsoft Windows SDK Tools".
Note: I am using Visual Studio 2010.
Step 4: Open your .exe file that exists in the bin folder of the project via "File" -> "Open".
Step 5: The .exe file loads in "IL Disassembler" after the selection, that will look like:
Step 6: Now double-click on the "Main" method that shows the following window where you can see your variable "i" that was an int type and now it converts into "int32".
Conclusion
I hope now you have an understanding of the Common Type System that converts both the Integer of VB.Net and int of C# into int32.