Significados de declarar, instanciar, inicializar e atribuir um objeto

Tecnicamente, quais são os significados e diferenças dos termosdeclarando, instanciar, inicializando eatribuindo um objeto em c #?

Acho que sei o significado de atribuir, mas não tenho uma definição formal.

No msdn, é dito "o ato de criar um objeto é chamado de instanciação". Mas o significadocriando me parece vago. Você pode escrever

int a;

éa então criado?

questionAnswers(2)

yourAnswerToTheQuestion