Ex:
public class Pessoa
{
public string nome;
public string profissao;
public Endereco endereco;
}
public class Endereco
{
public string numero;
public string cidade;
}
Quando voce cria uma pessoa vc faz Pessoa p = new Pessoa() porque vc precisa especificar o tipo, se fizer só p = new Pessoa() vai dar erro.
Já quando vc cria o endereço vc só faz p.endereco = new Endereco() porque p é uma pessoa que possui o campo endereço do Tipo Endereco(veja o exemplo da classe), por isso vc não precisa especificar o tipo novamente.
Assim ficaria:
Pessoa p = new pessoa();
p.nome = "Maria";
p.profissao = "Desenvolvedora";
p.endereco = new Endereco(); // ai vc preenche o endereço com os valores da classe endereço
p.endereco.numero = 123;
p.endereco.cidade = "Belo Horizonte"
Ou voce pode fazer assim: criando primeiro o e depois atribuindo a Pessoa
Pessoa p = new pessoa();
p.nome = "Maria";
p.profissao = "Desenvolvedora";
Endereco endereco = new Endereco();
endereco.numero = 123;
endereco.cidade = "Belo Horizonte"
p.endereco = endereco;