[英]Implementing an interface in f#
这是我的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));
由于您要实现接口,因此您需要使用此语法。
type TemplateService() =
interface ITemplateService with
member this.RenderTemplate model (templateName:string):string = ""
member this.RenderTemplate model (templateName:string, directory:string):string = ""
除了ChaosPandion的回答:
类可以像这样定义:
type ClassName(constructorArguments) =
class
...
end
或者像这样:
type ClassName(constructorArguments) =
...
因此,您既需要class
和end
关键字,也不需要它们。 通常人们使用没有class
和end
的表单。
您的其他代码段看起来像这样:
let template = Template.Parse stringToTemplate
template.Render (Hash.FromAnonymousObject model)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.