«^»
5.3. The simple types

C# provides a set of predefined types called the simple types. Some examples are: byte, short, int, long, char, float, double and bool. So C# has all the primitive types of Java. In addition, C# has unsigned/signed variants of the integer types: they are sbyte, ushort, uint and ulong. C# also has a simple type called decimal which can be used for the exact representation of monetary values.

The names of these simple types are keywords (reserved words). All of them are simply aliases for some predefined struct types. It is as if we had written:

using char   = System.Char;
using double = System.Double;
using int    = System.Int32;

Because a simple type (e.g., int) is just an alias for a struct type (e.g., System.Int32), every simple type has the members that the struct type has. For example:

int tLargest = int.MaxValue;

is the same as:

int tLargest = System.Int32.MaxValue;

And the two calls of ToString in:

int    tSomeInt      = 123;
string tFirstString  = tSomeInt.ToString();
string tSecondString = 123.ToString();

both access the ToString method of the class System.Int32.