Here we will learn data types in c# with examples, different data types (value type, reference type and pointer type) in c# and how to declare and define data types in c# with examples.
In C# programming language, Data Types are used 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 so before we perform any operation on variables, it’s mandatory to define a variable with required data type to indicate what type of data that variable can hold in our application.
Following is the syntax of defining a data types in c# programming language.
[Data Type] [Variable Name];
[Data Type] [Variable Name] = [Value];
[Data Type] - It’s a type of data the variable can hold such as integer, string, decimal, etc.
[Variable Name] - It’s a name of the variable to hold the values in our application.
[Value] - Assigning a required value to the variable.
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 c# programming language.
static void Main(string args)
int number = 10;
string name = "Suresh Dasari";
double percentage = 10.23;
char gender = 'M';
bool isVerified = true;
If you observe above c# data types example, we defined a 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
|Value Data Type||int, bool, char, double, float, etc.|
|Reference Data Type||string, class, object, interface, delegate, etc.|
|Pointer Data Type||Pointers.|
Following diagram will illustrate more detail about different data types in 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.
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.
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|
In c#, the Pointer Data Types will contain a memory address of variable value. To get the pointer details we have a two symbols ampersand (&) and asterisk (*) in c# language.
Following is the syntax of declaring the pointer type in c# programming language.
Following is the example of defining the pointer type in c# programming language.
Following table lists the detail about different type pointer symbols available in c# programming language.
|&||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.