C# - Data Types


C# is a strongly-typed language which means we have to declare the type of a variable that indicates the kind of values it is going to store.

In C# the Data Types are categorized into the following types.

  • Value Types
  • Reference Type

Value Types

Value type variables can be assigned a value directly.

The following table lists the available value types in C#

Type Represents Range Default Value
bool Boolean value True or False False
byte 8-bit unsigned integer 0 to 255 0
char 16-bit Unicode character U+0000 to U+FFFF \0
decimal 128-bit precise decimal values with 28-29 significant digits (-7.9 x 1028 to 7.9 x 1028) / 100 to 28 0.0M
double 64-bit double-precision floating point type (+/-)5.0 x 10-324 to (+/-)1.7 x 10308 0.0D
float 32-bit single-precision floating point type -3.4 x 1038 to + 3.4 x 1038 0.0F
int 32-bit signed integer type -2,147,483,648 to 2,147,483,647 0
long 64-bit signed integer type -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 0L
sbyte 8-bit signed integer type -128 to 127 0
short 16-bit signed integer type -32,768 to 32,767 0
uint 32-bit unsigned integer type 0 to 4,294,967,295 0
ulong 64-bit unsigned integer type 0 to 18,446,744,073,709,551,615
ushort 16-bit unsigned integer type 0 to 65,535 0

Reference Types

These types store references to the actual data.

Object Types

object: The base type of all other types.

String Type:

string:Represents a sequence of characters.

Nullable Type:

Allow value types to have a value of null.