palavra-chave var nem sempre funciona?

C #, VS 2010. Alguém, por favor, explique porque eu não posso usarvar no meu código abaixo!

var props = TypeDescriptor.GetProperties(adapter);

// error CS1061: 'object' does not contain a definition for 'DisplayName'
foreach (var prop in props)
{
    string name = prop.DisplayName;
}

// No error
foreach (PropertyDescriptor prop in props)
{
    string name = prop.DisplayName;
}

TypeDescriptor.GetProperties retorna umPropertyDescriptorCollection com instâncias dePropertyDescriptor. Por que o compilador não consegue ver isso?

questionAnswers(5)

yourAnswerToTheQuestion