F# 中的对象编程:接口、实现与资源管理
1. 定义新的对象接口类型
在 F# 中,对象接口类型用于定义一组抽象成员,这些成员的具体实现会因对象而异。以下是一个名为 IShape 的对象接口类型的定义:
open System.Drawing
type IShape =
abstract Contains : Point -> bool
abstract BoundingBox : Rectangle
在这个定义中,使用 abstract 关键字定义了 Contains 和 BoundingBox 两个抽象成员。 IShape 不是具体类型,它没有构造函数,也不接受参数,F# 会据此推断它是一个对象接口类型。
2. 使用对象表达式实现对象接口类型
对象表达式是一种用于实现对象接口类型的新表达式形式。以下是使用对象表达式实现 IShape 接口的示例:
let circle(center : Point, radius : int) =
{ new IShape with
member x.Contains(p : Point) =
let dx = float32 (p.X - center.X)
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



