Every type declared in C# is either a value type or a reference type. The distinction between the two lies in how each type is handled in memory. This has a variety of implications in how we go about writing and understanding the code that we write. This lesson aims to distill this concept by exploring simple examples of where the distinction often shows up.