implicit and explicit type casting in c# with example

Example 1: c# type conversion

// --------------------- TYPE CONVERSION --------------------- //

// Implicit conversion
float varFloat = 12.7f;
double varDouble = varFloat;   // converts float => double


// Explicit conversion (casting)
double varDouble = 2.3;
int varInt = (int) varDouble;        // converts double => int


// Type convertion: number to string
int varInt = 19;
string varString = varInt.ToString();    // converts int => string


// Type convertion: string to number
string varString = "89";   
int varInt = int.Parse(varString);         // converts string => int
double varDouble = double.Parse(varString);  // converts string => double
//OR
int varInt = Convert.ToInt32(varString);
double varDouble = Convert.ToDouble(varString);

Example 2: how to make a class implicitly convertible C#

public class ExampleClass
{
	private static int storedInt = 10;
  	
  	public int Integer
    {
    	get => storedInt;
      	set => storedInt = value;
    }
  		
  	public ExampleClass(int storedNumber)
    {
    	storedInt = storedNumber;
    }
  	
  	public static implicit operator ExampleClass(int value)
    {
    	ExampleClass x = new ExampleClass(value);
      	x.Integer = value;
      	return x;
    }
}