Data Types

Data types in C# divided into three categories

- Value Data Types

-  Reference Data Types

-  Pointer Data Type

Value Data Types: 

The Value Data Types variable assigns a value directly and stores the
value in memory. The derived class for these data types is System.ValueType.
   E.g.: int, char, bool, and float, which store numbers, alphabets, boolean, and floating-point numbers, respectively.

When you declare an int type, the system allocates memory to store the value.
Also, enum types, struct types, and Nullable value types come under Value Data Type.

Following list shows the range and default values:

 

Type

Description

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

0

ushort

16-bit unsigned integer type

0 to 65,535

0

 

Sample Program:

 

using System;
namespace SampleProgram {
  class MySample // Class Declaration
  {
    public static void Main(string[] args) //Main Method
    {
      // declare character
      char c = 'C';
      // Int data type is for numbers
      int i = 89;
      //double for fraction values
      double d = 5.43543423;
      //boolean values
      bool b = false;
      Console.WriteLine("char: " + c);
      Console.WriteLine("integer: " + i);
      Console.WriteLine("double: " + d);
      Console.WriteLine("bool: " + b);
    }
  }
}

 

The output will be:

Output

 

Reference Type:

The reference types won’t store the value directly instead they store the memory
address of the variable value. In other words, they refer to a memory location. 
Reference types include class types, interface types, delegate types, and array types.

The built-in reference types are string, object.

-  String: Represents a sequence of Unicode characters and its type name is System.String

                     Example: string s1 = "hello world";

-  Object: It is the base class for all the data types in C#.

All types, reference types, and value types inherit directly or indirectly from Object class.

So before assigning values, it needs type conversion. This conversion is called boxing and unboxing.
Boxing: When a variable of a value type is converted to an object.
UnBoxing: When an object type is converted to a value type.

Pointer Data Type: 

The Pointer Data Types will contain a memory address of the variable value.

Pointers in C# have the same capabilities as the pointers in C or C++.
It uses ampersand (&) to get the address and asterisk (*) to access the value of an address.

Syntax :  type* identifier;

Example :
int* t1, t2;
char* ptr;

 

Related Tutorials