gpt4 book ai didi

.net - 如何将属性添加到 F# 类型中的公共(public)方法?

转载 作者:行者123 更新时间:2023-12-01 11:06:50 27 4
gpt4 key购买 nike

我只是第一次尝试 F#,并尝试使用它与 C# 项目的互操作。

我在 C# 项目中定义了自定义属性,并在我的新 F# 项目中添加了对该项目的引用。当我尝试将属性定义为“let”语句时,“let”是永久私有(private)的,因此属性是否有效并不重要。当我试图将“let”语句更改为其他内容(例如“member”)时,我被告知属性不能以对象为目标。如果我希望它是公开的并具有属性,我应该如何定义该函数?

module FSharp

type public MyClass() =
class
//this one will get the attributes, but is always private and can't be made public
[<Core.NameAttribute("F# name")>]
[<Core.DescriptionAttribute("F# desc")>]
let f1 = "test from F#"

//this one won't get the attributes, but is public and does return the value
member this.Function1 = f1
end

正如我在代码中所述,我似乎遇到了问题。我的属性只设置为目标方法,我可以在“let”语句上设置它们,但不能在“member”语句上设置它们。我敢肯定这很愚蠢,但我提前感谢您的帮助!

最佳答案

问题是您的 member 定义是一个属性,而不是一个方法。与 Wesley 的回答一样,添加一些参数(只要空括号就可以)使其成为一种方法。

(也可能见

http://blogs.msdn.com/b/timng/archive/2010/04/05/f-object-oriented-programming-quick-guide.aspx

http://lorgonblog.wordpress.com/2009/02/13/the-basic-syntax-of-f-classes-interfaces-and-members/

)

关于.net - 如何将属性添加到 F# 类型中的公共(public)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4765279/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com