As you already know, when declaring a variable in C#, you must specify the data type with the variable name, and as such, you will tell the compiler what type of data the variable will hold. Almost all programming language needs the concept of the data type. Since C# is a strongly typed language, it is essential to inform the compiler what kind of data these memory locations will hold. In this chapter, you will learn about the different data types that are supported by C#.

Data Types in C#

Every C# variable will be of any one of the three types. These are:
  • Value Type
  • Reference Type
  • Pointer Type

Let us discuss each of the types in details:

Value Type

When a variable can be assigned a value directly, it is termed as Value Type variables. Their origination comes from the System.ValueType class. They are the preliminary data types of the C# language.

  • int
  • float
  • char

As soon as a programmer declares a variable with a data type, the compiler allocates some memory (based on the number of bytes it takes) for storing the value.

Integral Type

C# allows you to define eight different types of integral variables. They provide support for 8-bit, 16-bit, 32-bit, and 64-bit values with signed & unsigned modifiers. These eight types are mentioned below with their keyword, range, class name, and default value.

short signed integer System.Int16 16 -32768 to 32767 0
sbyte signed integer System.Sbyte 8 -128 to 127 0
Int signed integer System.Int32 32 -231 to 231-1 0
long signed integer System.Int64 64 -263 to 263-1 0L
byte unsigned integer System.byte 8 0 to 255 0
ushort unsigned integer System.UInt16 16 0 to 65535 0
uint unsigned integer System.UInt32 32 0 to 232 0
ulong unsigned integer System.UInt64 64 0 to 263 0

Floating Point Type

Floating-point data types in C# are of two types. These are:

  1. 32-bit single (7-digit) precision floating point type declared using the keyword float. For initializing any variable with float, you have to mention a 'f' or 'F' after the value. For example: float g = 62.4f; If you do not use the suffix, then the compiler treats the value as double.
  2. 64-bit (14-15 digit) precision floating point type declared using the keyword double. For initializing any variable with double, you have to mention a 'd' or 'D' after the value. For example, double ks =8.403122d;

Decimal Types

Decimal Type is another type of variable used for extensive calculations; 128-bit is used to calculate huge economic data. It uses' or 'M' as the suffix; otherwise, the value will be treated as double.

Character Types

This is used for representing a 16-bit Unicode character used for storing a single character.

Reference Type

A reference type is another form of the variable that does not hold the actual value or data; instead, it references any memory location assigned with a variable. This refers to a memory location

The built-in reference types provided by C# are:

  1. string
  2. object
  3. dynamic

All these will be covered in the later chapter of this tutorial.

Pointer Type

These types of variables are used for storing the address of any memory location, which is of another type. Pointers are considered a separate data type because they do not hold the actual value or data; instead, they are meant to store the actual memory location. The concept of pointers came in C# from C and C++.

The syntax of declaring pointers in C# is:


type* identifier;


char* str_name;
int* user_id;

Found This Page Useful? Share It!
Get the Latest Tutorials and Updates
Join us on Telegram