这是我的c#界面:
public interface ITemplateService
{
string RenderTemplate(object model, string templateName);
string RenderTemplate(object model, string templateName, string directory);
}
我正在尝试在F#中进行实现,但在关键字end
上出错。 (实现文件中的意外end
)
module TemplateService
open DotLiquid
type TemplateService =
inherit ITemplateService
member this.RenderTemplate model (templateName:string):string = ""
member this.RenderTemplate model (templateName:string, directory:string):string = ""
end//error here.
PS。 F#中的代码是什么:
Template template = Template.Parse(stringToTemplate);
template.Render(Hash.FromAnonymousObject(model));
答案 0 :(得分:4)
由于您正在实现一个接口,因此您需要使用此语法。
type TemplateService() =
interface ITemplateService with
member this.RenderTemplate model (templateName:string):string = ""
member this.RenderTemplate model (templateName:string, directory:string):string = ""
答案 1 :(得分:3)
除了ChaosPandion的回答:
可以像这样定义一个类:
type ClassName(constructorArguments) =
class
...
end
或者像这样:
type ClassName(constructorArguments) =
...
因此,您既需要class
和end
关键字,也不需要它们。通常人们使用表格
没有class
和end
。
您的其他代码段看起来像这样:
let template = Template.Parse stringToTemplate
template.Render (Hash.FromAnonymousObject model)