Qual è la differenza tra programmazione dichiarativa e imperativa

Ho cercato sul web in cerca di una definizione per la programmazione dichiarativa e imperativa che avrebbe fatto luce per me. Tuttavia, il linguaggio usato in alcune delle risorse che ho trovato è scoraggiante, ad esempio su Wikipedia . Qualcuno ha un esempio del mondo reale che potrebbe mostrarmi che potrebbe portare qualche prospettiva a questo argomento … forse in C #.