我一直在网上寻找声明式和命令式编程的定义,这将为我提供一些启发。但是,在我发现的某些资源中使用的语言令人生畏- 例如在Wikipedia上。有没有人有一个真实的例子可以向我展示这个主题(可能是C#)的观点?
LINQ是声明式与命令式编程的一个很好的C#示例。
使用 命令式 编程,您可以逐步告诉编译器您要发生的事情。
例如,让我们从这个集合开始,然后选择奇数:
List<int> collection = new List<int> { 1, 2, 3, 4, 5 };
使用命令式编程,我们将逐步完成并确定我们想要的是:
List<int> results = new List<int>(); foreach(var num in collection) { if (num % 2 != 0) results.Add(num); }
在这里,我们说的是:
另一方面,使用 声明式 编程,您可以编写代码来描述所需的内容,但不一定要获得它(声明所需的结果,而不是逐步说明):
var results = collection.Where( num => num % 2 != 0);
在这里,我们说的是“给我们所有奇怪的地方”,而不是“逐步检查集合。检查此项目,如果它很奇怪,请将其添加到结果集合中。”
在许多情况下,代码也将是两种设计的混合体,因此它并不总是黑白的。