C# Data Types
- C# is a rich language that is why every variable has a data type in it.
- Data types assign the type of the value stored in a variable.
- There are several data types are present in C# which are used by the programmer at the time of creation of program.
In C# data types are categorized into three parts which are given below:
- Value Type
- Reference Type
- Pointer Type
- Value type data types are those data types which contains the actual data value.
- These data types are of fixed length and stored on the stack of memory.
- These data types are stored the copy of the value.
- They are derived from the System.ValueType Class.
- Reference Type data types are those data types which contains the reference of the value.
- These data types are of varied length and stored on the heap in memory.
- These data types do not contain copy of value like Value Type. On the other side these contain address of the value.
- Pointer type data type is only used in the context of unsafe code.
- Pointer Types variables are basically used to store the memory address of variable of any other data type.
- We are giving here the syntax of pointer type data type:
We can further classify the Value Types into two parts :
User-Defined types are those value types which are defined by the users. There are two types of User-Defined types present in C# given below in the table:
Predefined Types are those value types which are already defined in C#.Following table contains all the Pre-Defined value data types of C#:
|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||0|
|ushort||16-bit unsigned integer type||0 to 65,535||0|
We can also classify Reference Type into two categories:
User-Defined Reference Types are those data types which are defined by the users. Following tables contains the User-Defined Reference Type present in C#:
Pre-Defined Reference Types are those data types which are already defined in C#. Following table tells us about the Pre-Defined Reference type present in C#: