Conversion changes a value from one type to another when the program needs a different form.

parse Parsing converts text into a typed value such as an integer.

Type Conversion

text
TypeConversion.cs
Replay: real traced execution (multi-file project)
using System;

class Program
{
    static void Main()
    {
        string text = "42";
        int value = int.Parse(text);
        int doubled = value * 2;

        Console.WriteLine($"text={text}");
        Console.WriteLine($"value={value}");
        Console.WriteLine($"doubled={doubled}");
    }
}
using System;

class Program
{
    static void Main()
    {
        string text = "7";
        int value = int.Parse(text);
        int doubled = value * 2;

        Console.WriteLine($"text={text}");
        Console.WriteLine($"value={value}");
        Console.WriteLine($"doubled={doubled}");
    }
}
using System;

class Program
{
    static void Main()
    {
        string text = "100";
        int value = int.Parse(text);
        int doubled = value * 2;

        Console.WriteLine($"text={text}");
        Console.WriteLine($"value={value}");
        Console.WriteLine($"doubled={doubled}");
    }
}
  1. text ← 42, value ← 42, doubled ← 84

    4{5    static void Main()6    {7        string text→ 42 = "42"; //@text="7", "100"8        int value→ 42 = int.Parse(text42);9        int doubled→ 84 = value42 * 2;1011        Console.WriteLine($"text={text42}");12        Console.WriteLine($"value={value42}");13        Console.WriteLine($"doubled={doubled84}");14    }
    outputtext=42
    value=42
    doubled=84
  1. text ← 7, value ← 7, doubled ← 14

    4{5    static void Main()6    {7        string text→ 7 = "7";8        int value→ 7 = int.Parse(text7);9        int doubled→ 14 = value7 * 2;1011        Console.WriteLine($"text={text7}");12        Console.WriteLine($"value={value7}");13        Console.WriteLine($"doubled={doubled14}");14    }
    outputtext=7
    value=7
    doubled=14
  1. text ← 100, value ← 100, doubled ← 200

    4{5    static void Main()6    {7        string text→ 100 = "100";8        int value→ 100 = int.Parse(text100);9        int doubled→ 200 = value100 * 2;1011        Console.WriteLine($"text={text100}");12        Console.WriteLine($"value={value100}");13        Console.WriteLine($"doubled={doubled200}");14    }
    outputtext=100
    value=100
    doubled=200

Follow the Conversion

  1. text starts as 42.
  2. int.Parse(text) gives value = 42.
  3. doubled = value * 2.
  4. doubled becomes 84.
  5. The program prints text=42, value=42, and doubled=84. | text | value | doubled | | --- | --- | --- | | 7 | 7 | 14 | | 42 | 42 | 84 | | 100 | 100 | 200 |

Exercise: TypeConversion.cs

Reproduce doubled=84, then use text values 7 and 100 to predict value and doubled.