A value type is a .NET type whose values contain their data directly. Types can also be reference types, which store a reference to their data. This distinction affects how values behave when passed to methods or copied to other variables. section 2.4
Keep these value-type behaviors in mind:
- Recognize common value types such as int and float, along with structs and enums. section 2.4
- Treat value types as objects when required through boxing, and recover the value through unboxing. section 2.4
- Remember that an integer property such as Book.Id cannot be null unless it is explicitly marked nullable. section 5.2.2
- Use the distinction alongside C#’s strong typing: variables, constants, and value-producing expressions have specific types. section 2.4
Passing an integer to an object parameter
An int named count can be passed to Console.WriteLine even when the relevant parameter expects object. C# automatically boxes count, wrapping the value type as an object. section 2.4

