Datatypes in C# and .NET
DataTypes are the basic building block of any language. Microsoft has tried to standardise the datatypes in .NET framework by introducing a limited, fixed set of types that can be used to represent almost anything in programming world.
C++ was very rich in datatypes, but that leads to confusion too. Especially, when you write components that may be consumed by applications written in other platforms, you have to make sure the types used are compatible with other platforms too!
.NET types start from a clean slate. All .NET languages share the same types. So, they are all compatible and no worries.This means, you can call C# code from VB.NET and vice versa, without worrying about type conversions.
.NET data types are either structures or classes, part of the System namespace. For example, the following data types are implemented as struct in .NET:
(String is implemented as a class in .NET, for various reasons.)
If you are not very familiar with struct and class, don’t worry about it. You can just use them as if they are simple data types.
Here is how you can declare variables of type Int, Double and String:
- Int16 age, employee number;
- Double salary;
- String name, address;
You can use any of the .NET data types directly in any .NET language – in C#, VB.NET or xyz.NET.But in addition to the .NET types, each language provides a set of primitive types, which map to the corresponding types in .NET class library. This is why you may see some people use string and some others use String. There is no big difference. string is a primitive data type in C# and String is the corresponding class in .NET class library. The string in C# is mapped to the class in .NET class library. So, whether you use string or String,there is no real difference.
DataTypes in C# and the corresponding class/struct in .NET class library
The following list shows the list of data types available in C# and their corresponding class/struct in .NET class library.
|C# Data type||Mapped to .NET class/struct|