Olá, pessoal!
Eu fiquei intrigado com uma questão em específico quanto a arrays. Segue código:
public class Cliente
{
public string Nome { get; set; }
public string CPF { get; set; }
public string Profissao { get; set; }
}
public class ClienteTeste
{
public void MeuMetodo()
{
Cliente[] c = new Cliente[2];
c[0] = new Cliente();
c[1] = new Cliente();
for(int i = 0; i < c.Length; i++)
{
// Alguma ação
}
}
}
Notem que o objeto Cliente c possui a propriedade Length, mas em nenhum momento declaramos essa propriedade na classe Cliente. Inspecionando a propriedade Length reparei que ela pertence a classe Array, e não a classe Cliente, mas em nenhum momento herdamos Array em Cliente. Também notei que conseguimos utilizar indexadores no objeto Cliente c sem termos implementado o indexador na respectiva classe.
Minha dúvida é: como conseguimos utilizar index e Length sem nenhuma herança?