首页 > 代码库 > 8.3.3.1 C# 中的组合行为

8.3.3.1 C# 中的组合行为

8.3.3.1 C# 中的组合行为

 

这一章,我们首先看到的是用C# 代码写的示例,声明只有一个方法的接口表示检查,然后,为了更方便的方法写代码,我们使用了函数(和 Func 委托)。如果我们想要实现处理两个函数的程序,就像现在用 F# 所做的,可能会立即转回接口。在 C# 中,使用接口肯定要比使用元组或类,以函数作为其成员更方便、更合理。我们已经说过,在 C# 中,有两种选择:对于简单的行为,使用函数,对于更复杂的,使用接口。

在 F# 中,在表示形式之间进行转换更简单;最重要的是,由于有类型推断,不必改变源代码中每一处的类型;此外,把 lambda 函数转换成类,要比添加其他函数的变化更大。在第九章,我们将看到,在 F# 中,组合行为也可以使用.NET 接口表示。即使在使用接口时,仍有方便的方法将 lambda 函数转换成任何可以看作是“lambda 对象”的对象,这个功能称为对象表达式(object expression),我们将在下一章讨论。

在这一章,我们主要关注以行为中心的应用程序,但在本章的开头我们解释过,以数据为中心和以行为为中心的方法经常一起使用。现在,我们将实际看到,组合有差别联合类型的函数,对于表示在第七章讨论过的数据,是何等重要。

8.3.3.1 C# 中的组合行为