[c#] What is the difference between declarative and imperative paradigm in programming?