implicit conversion c# code 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: custom cast c#

using System;

public readonly struct Digit
{
    private readonly byte digit;

    public Digit(byte digit)
    {
        if (digit > 9)
        {
            throw new ArgumentOutOfRangeException(nameof(digit), "Digit cannot be greater than nine.");
        }
        this.digit = digit;
    }

    public static implicit operator byte(Digit d) => d.digit;
    public static explicit operator Digit(byte b) => new Digit(b);

    public override string ToString() => $"{digit}";
}