Tudo herda de object em .net, mas se crio uma variável do tipo Int32 é assim que ela deve ser reconhecida, e a estrutura hierárquica funciona assim. Ou seja, se tenho uma classe PessoaFisica que herda de Pessoa, quando crio uma variavel Pessoa e jogo uma PessoaFisica dentro, a variavel Pessoa.GetType() retornará PessoaFisica.
Se eu sei que atribui um Int32 a uma variável do tipo object, o tipo dessa variável será Int32 e não object, pq é como o sistema funciona.
Session["contador"] = 10; var contadorDaSessao = Session["contador"];
Qual é o tipo de contadorDaSessao? R - Int32 Qual é o tipo da propriedade Current em Enumerator : IEnumerator? R - object Tipo da propriedade é uma coisa, tipo do valor é outra.