码迷,mamicode.com
首页 >  
搜索关键字:函数编程    ( 392个结果
9.5 在 C# 中使用 F# 库
9.5 在 C# 中使用 F# 库   像 C# 一样,F# 也是一种静态类型的语言,就是说,编译器知道每个值的类型,以及类方法和属性的签名。对于与 C# 的互操作性来说,这是非常重要的,因为,编译器可以生成代码,看起来就像普通的 .NET 库。   与其他 .NET 语言的互操作性   F# 和 C# 或 VB.NET 之间的互操作性是非常平滑的,相比有 .NET 实现的动态类型的语...
分类:Windows程序   时间:2014-12-15 10:31:08    阅读次数:218
9.4.2.2 F# 中的向上转换和向下转换(UPCASTS AND DOWNCASTS)
9.4.2.2 F# 中的向上转换和向下转换(UPCASTSAND DOWNCASTS)   如果类型之间的转换不会失败,就称为向上转换(upcast)。我们已经看到,把类型转换成由该类型实现的接口,就是这种情况;另一个示例是把派生类转换成它的基类,在这种情况下,编译器也可以保证操作是正确的,不会失败。 如果有一个基本类型的值,希望将它转换为继承类,操作可能会失败,因为基类的值可能是目标类的...
分类:其他好文   时间:2014-12-12 19:14:21    阅读次数:170
9.4.2 实现接口和类型转换
9.4.2 实现接口和类型转换   我们已经讨论过在 F# 中如何声明接口,如何使用对象表达式,创建实现接口的值。这是一个非常轻量级的解决方案,类似于 lambda 函数。正如 lambda 语法,对于创建函数来说,并不总是合适的选择一样,有时,在命名类中实现接口,是有道理的。 我们将继续使用在本章前面的示例,来看一下用 C# 和 F# 实现接口,我们回顾一下两种语言中的接口声明:   ...
分类:其他好文   时间:2014-12-12 16:47:52    阅读次数:170
9.4.2.1 在 F# 中实现接口
9.4.2.1 在 F# 中实现接口   清单 9.17 使用 C# 中的显式接口实现,因为,这是 F# 允许的唯一的接口实现的风格。在函数编程风格中,这通常足够了。如果确实需要直接公开类的功能,可以添加额外的、调用相同代码的成员。清单 9.18 显示了前面示例的 F# 版本。   清单 9.18 在类中实现接口 (F#) type CoefficientTest(incomeCoeff...
分类:其他好文   时间:2014-12-12 16:46:59    阅读次数:136
9.4 具体的对象类型
9.4 具体的对象类型   面向对象编程中的最重要的结构,就是类的声明。它的价值体现用 F# 写的库,可以在 C# 中使用,因为从 C# 中引用F# 声明的类时,看起来就像普通的类。从概念上讲,类有一点像带成员的记录,因为,它们把值存储在字段中,并提供成员进行访问;类还有另外的功能,在 F# 中,出现下列情况,通常使用类: ■ 需要封装数据和行为时。 ■ 在迭代开发过程的后期,把简单的元组...
分类:其他好文   时间:2014-12-12 11:49:28    阅读次数:174
9.4.1 函数式和命令式类
9.4.1 函数式和命令式类    在类或者类的构造函数的参数值中的 let 绑定,就像我们在其他 F# 代码中看到的 let 绑定一样,也是不可变值;此外,使用 member 关键字声明的属性,创建的是只读属性(只有 getter)。因此,如果类只引用其他不可变类型的值,那么,类也不可变。 比方说,在前面的例子中,我们要允许改变客户的收入,可以有两种方式: ■以纯函数式风格,对象将返回一...
分类:其他好文   时间:2014-12-12 11:42:13    阅读次数:146
9.3.2.1 用关键字 use 编程
9.3.2.1 用关键字 use 编程   我们已经知道,如果用关键字 use 创建值,编译器会自动在声明这个值的函数结尾,插入对 Dispose 方法的调用。这对于资源管理来说是有用的,但还有其他情况,我们需要在两个函数调用之间加包括一段代码。 假设我们希望用不同的颜色输出文本到控制台,然后,再恢复原来的颜色。用传统的方法,我们必须保存原来的颜色,设置新的颜色,发送输出到控制台,再恢复原来...
分类:其他好文   时间:2014-12-11 17:28:44    阅读次数:142
9.3.1 使用 .NET 集合
9.3.1 使用 .NET 集合   到目前为止,虽然我们主要是用F# 内置的列表类型来保存数据集合,在某些情况下,使用其他的 .NET 类型,比如,System.Collections.Generic 命名空间下的 Dictionary 类,也是有用的。这种类型对需要根据键进行快速访问,特别有用,因为提供了类似功能的不可变类型(比如,F# 库中的 Map),效率低下。 需要注意的是,Dic...
分类:Web程序   时间:2014-12-11 15:59:47    阅读次数:152
9.3.2 用 IDisposable 接口清理资源
9.3.2 用 IDisposable 接口清理资源   我们已经使用过几种实现了 IDisposable 接口的类型,比如,Graphics 和 SolidBrush。我们想使代码尽可能易于理解,因此,当使用完对象时,我们就显式调用 Dispose 方法。 C# 中包含了语法糖,以 using 语句的形式,保证了即使语句体内抛出异常,也能调用 Dispose;F# 有相似的结构,用 use...
分类:其他好文   时间:2014-12-11 15:52:46    阅读次数:142
9.2.2 使用接口对象类型
9.2.2 使用接口对象类型   就像记录和差别联合一样,接口类型使用 type 构造来声明。清单 9.8 显示了把以前的检查记录类型,转换为接口类型。   清单 9.8 用接口表示客户检查 (F#) type ClientTest =   abstract Check : Client –> bool   abstract Report : Client -> unit   在...
分类:其他好文   时间:2014-12-11 12:28:30    阅读次数:128
392条   上一页 1 ... 31 32 33 34 35 ... 40 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!