小编典典

声明式和命令式编程之间有什么区别?[关闭]

c#

我一直在网上寻找声明式和命令式编程的定义,这将为我提供一些启发。但是,在我发现的某些资源中使用的语言令人生畏-
例如在Wikipedia上。有没有人有一个真实的例子可以向我展示这个主题(可能是C#)的观点?


阅读 317

收藏
2020-05-19

共1个答案

小编典典

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);
}

在这里,我们说的是:

  1. 创建结果集合
  2. 逐步浏览集合中的每个数字
  3. 检查数字,如果是奇数,则将其添加到结果中

另一方面,使用 声明式 编程,您可以编写代码来描述所需的内容,但不一定要获得它(声明所需的结果,而不是逐步说明):

var results = collection.Where( num => num % 2 != 0);

在这里,我们说的是“给我们所有奇怪的地方”,而不是“逐步检查集合。检查此项目,如果它很奇怪,请将其添加到结果集合中。”

在许多情况下,代码也将是两种设计的混合体,因此它并不总是黑白的。

2020-05-19