In c# programming language, Data Types are useful to define a type of data the variable can hold, such as integer, float, string, etc., in our application.
C# is a Strongly Typed programming language. Before we perform any operation on variables, it’s mandatory to define a variable with the required data type to indicate what type of data that variable can hold in our application.
Following is the syntax of defining data types in the c# programming language.
If you observe the above syntax, we added a required data type before the variable name to tell the compiler about what type of data the variable can hold or which data type the variable belongs to.
Now we will see how to use the Data Types in our c# applications with examples.
Following is the example of using the data types in the c# programming language.
If you observe the above c# data types example, we defined multiple variables with different data types based on our requirements.
In C# programming language, we have a 3 different type of data types, those are
Type | Data Types |
---|---|
Value Data Type | int, bool, char, double, float, etc. |
Reference Data Type | string, class, object, interface, delegate, etc. |
Pointer Data Type | Pointers. |
The following diagram will illustrate more detail about different data types in the c# programming language.
In c#, the Value Data Types will directly store the variable value in memory. In c#, the value data types will accept both signed and unsigned literals.
The following table lists the value data types in c# programming language with memory size and range of values.
Data Type | .NET Type | Size | Range |
---|---|---|---|
byte | Byte | 8 bits | 0 to 255 |
sbyte | SByte | 8 bits | -128 to 127 |
int | Int32 | 32 bits | -2,147,483,648 to 2,147,483,647 |
uint | UInt32 | 32 bits | 0 to 4294967295 |
short | Int16 | 16 bits | -32,768 to 32,767 |
ushort | UInt16 | 16 bits | 0 to 65,535 |
long | Int64 | 64 bits | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
ulong | UInt64 | 64 bits | 0 to 18,446,744,073,709,551,615 |
float | Single | 32 bits | -3.402823e38 to 3.402823e38 |
double | Double | 64 bits | -1.79769313486232e308 to 1.79769313486232e308 |
bool | Boolean | 8 bits | True or False |
decimal | Decimal | 128 bits | (+ or -)1.0 x 10e-28 to 7.9 x 10e28 |
DateTime | DateTime | - | 0:00:00am 1/1/01 to 11:59:59pm 12/31/9999 |
In c#, the Reference Data Types will contain a memory address of variable value because the reference types won’t store the variable value directly in memory.
The following table lists the reference data types in c# programming language with memory size and range of values.
Data Type | .NET Type | Size | Range |
---|---|---|---|
string | String | Variable Length | 0 to 2 billion Unicode characters |
object | Object | - | - |
In c#, the Pointer Data Types will contain a memory address of the variable value. To get the pointer details we have two symbols ampersand (&) and asterisk (*) in c# language.
Following is the syntax of declaring the pointer type in the c# programming language.
Following is the example of defining the pointer type in the c# programming language.
The following table lists the detail of different type pointer symbols available in the c# programming language.
Symbol | Name | Description |
---|---|---|
& | Address Operator | It's useful to determine the address of a variable. |
* | Indirection Operator | It's useful to access the value of an address. |
This is how we can use the data types in c# applications based on our requirements.