C#中声明式编程与命令式编程的区别是什么?
大家好!我是一名C#初学者,"命令式"和"声明式"编程这两个术语总是让我困惑。我读过一些文章,但始终没有完全理解它们在实际中的区别。
例如,我写了这样一段代码来过滤数字列表:
List<int> numbers = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
List<int> evenNumbers = new List<int>();
for (int i = 0; i < numbers.Count; i++)
{
if (numbers[i] % 2 == 0)
{
evenNumbers.Add(numbers[i]);
}
}
这是命令式方法,对吧?我明确描述了如何做:创建循环、检查条件、添加到列表。
但后来我看到了另一种方式:
var evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
这算是声明式吗?我只是说了我想要什么(偶数),而不是具体如何实现。
但我还是不太确定。关键区别到底是什么?什么时候该用哪种方法?有没有哪种情况更适合用其中一种?