Comunicação entre diferentes formas

Em C #, usando winforms, qual é a melhor maneira de fazer com que os formulários conversem entre si? Enviando dados, mensagens, strings, o que for, de um para o outro?

Delegados?

Idéias?