Большую часть времени происходит небольшая ложная ложь в отношении типов значений, наследуемых от ValueType, а через него - от Object.В распакованном int или bool не хранится ничего, относящегося к этому наследованию.Тем не менее, он получает его, если он в штучной упаковке (что произойдет неявно с некоторыми операциями).Большинство языков скрывают это, поэтому они кажутся просто такими же, как и любой другой объект, который наследуется от Object всякий раз, когда мы используем их как таковые, но также действуют как простые типы, когда мы используем их как таковые.