【发布时间】:2017-05-10 09:18:33
【问题描述】:
我希望在接口或抽象类中定义几个类型,但未指定实现。 然后我想在另一个接口中继承这个接口,这样我就可以在 interface2 中使用第一个接口中定义的类型指定我的方法。
例如:
type Interface1 =
type MyType1
type MyType2
type Interface2 =
inherit Interface1
abstract member method1 : MyType1*MyType2 -> int
Module MyModule =
我的想法是我希望模块实现 interface2,所以它应该实现 MyType1 和 MyType2,以及 method1。
我没有在签名文件中做所有这些的原因是因为我希望能够在 c# 中实现 type1 和 2,但是实现 Interface1。
谁能帮我解决这个问题?
【问题讨论】:
-
首先,签名文件不像头文件那样工作,所以我认为您的方法不太正确
-
听起来您正在尝试使用 ML 风格的模块系统 - F# 并不真正支持这一点,人们通常使用接口或其他抽象机制,具体取决于具体情况 - 什么是您要解决的原始问题是什么?
-
我们正在尝试制作可用于开发安卓游戏的通用代码库。我们已经制作了一个通用的 viewmode-controller 部分,现在我们正在尝试为模型定义一个可用于所有实现的接口。 IE。
MyType1和MyType2在 interface/abstract 类中未指定,但会为每个不同的游戏获取一个特定的实现,可以根据你的需要而有所不同。
标签: c# inheritance interface f# abstract-class