C# Data Types and benefits for beginners

Data Types, The variables in C#, are categorized into the following types

  • Value types
  • Reference types
  • Pointer types

Value Type

Value type variables may be assigned a cost at once. They are derived from the class System.ValueType.

The cost sorts immediately comprise facts. Some examples are int, char, and float, which shops numbers, alphabets, and floating point numbers, respectively. When you claim an int kind, the machine allocates reminiscence to keep the fee.

The following desk lists the to be had fee types in C# 2010

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) / 100to 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

To get the precise size of a type or a variable on a particular platform, you can use the sizeof approach.

The expression sizeof(kind) yields the storage length of the object or kind in bytes. Following is an example to get the dimensions of int kind on any machine

using System;

namespace DataTypeApplication {
   class Program {
      static void Main(string[] args) {
         Console.WriteLine("Size of int: {0}", sizeof(int));
         Console.ReadLine();
      }
   }
}

When the above code is compiled and done, it produces the subsequent end result −

Size of int: 4

Reference Type

The reference sorts do now not contain the actual information stored in a variable, however they comprise a reference to the variables.

In different words, they seek advice from a reminiscence location. Using multiple variables, the reference sorts can refer to a memory place.

If the statistics inside the reminiscence vicinity is changed by way of one of the variables, the alternative variable routinely reflects this variation in cost.

Example of built-in reference types are: object, dynamic, and string.

Data Types, Object Type

The Object Type is the closing base magnificence for all facts sorts in C# Common Type System (CTS). Object is an alias for System.Object elegance. The item types can be assigned values of every other kinds, fee kinds, reference sorts, predefined or consumer-defined types. However, before assigning values, it desires type conversion.

When a cost type is converted to object type, it’s far called boxing and then again, whilst an item kind is converted to a fee kind, it’s miles known as unboxing.

Item obj; obj = 100; // that is boxing

Dynamic Type

You can store any type of price within the dynamic statistics kind variable. Type checking for those styles of variables takes place at run-time.

Data Types, Syntax for declaring a dynamic type is −

dynamic <variable_name> = value;

For example,

dynamic d = 20;

Dynamic sorts are much like object kinds besides that type checking for object kind variables takes vicinity at assemble time, while that for the dynamic type variables takes location at run time.

String Type

Data Types, The String Type permits you to assign any string values to a variable. The string kind is an alias for the System.String elegance. It is derived from item type.

The price for a string kind may be assigned the use of string literals in two forms: quoted and @quoted.

For instance,

String str = “Tutorials Point”;

A @quoted string literal appears as follows −

@”Tutorials Point”;

The person-described reference sorts are: magnificence, interface, or delegate. We will discuss these types in later bankruptcy.

Data Types, Pointer Type

Pointer kind variables save the memory cope with of every other kind. Pointers in C# have the equal abilities because the hints in C or C++.

Syntax for declaring a pointer type is −

kind* identifier;

For instance,

char* cptr; int* iptr;

We will talk pointer sorts inside the bankruptcy ‘Unsafe Codes’.