Fist the data types available.

int            whole numbers
long           whole numbers (bigger range)
float          floating-point numbers
double         double precision
decimal        monetary values
char           single character
bool           boolean
DateTime       moments in time	
string         sequence of characters

Table of implicit conversion made by C#.

From           To 
sbyte          short int long float double decimal 
byte           short ushort int uint long ulong float double decimal 
short          int long float double decimal 
ushort         int uint long ulong float double decimal 
int            long float double decimal 
uint           long ulong float double decimal 
long ulong     float double decimal 
float          double 
char           ushort int uint long ulong float double decimal

By the way, you cannot implicitly convert a long value to an int, because this conversion risks losing information (the long value might be outside the range supported by the int type).

Explicit conversions

In Visual C#, you can use a cast operator to perform explicit conversions. A cast specifies the type to convert to, in round brackets before the variable name

int a; 
long b = 5; 
a = (int) b;    
// Explicit conversion of long to int. 

Using the System.Convert Class

The System.Convert class provides methods that can convert a base data type to another base data type. These methods have names such as ToDouble, ToInt32, ToString, and so on.

string possibleInt = "1234"; 
int count = Convert.ToInt32(possibleInt);

TryParse conversion

int number = 0; 
string numberString = "1234"; 
if (int.TryParse(numberString, out number)) 
{     
    // Conversion succeeded, number now equals 1234. 
} 
else 
{    
    // Conversion failed, number now equals 0. 
}