【问题标题】:F# How do I access a member from a functionF#如何从函数访问成员
【发布时间】:2013-04-16 13:06:17
【问题描述】:

我对 F# 还很陌生,所以我不太确定我在这里做错了什么 这就是我想要做的:

type MyClass() =
    let someVar = this.MyMember()

    member this.MyMember() :unit = 
        // insert some code here

我不能这样做,因为 Visual Studio 告诉我“this”没有定义 所以我该怎么做? 我是否遗漏了 F# 的一些明显功能或其他什么?

我尝试让我的所有成员函数改为......但是我必须重新排序所有函数,以便它们变得可见,然后它仍然无法工作

那怎么办?

【问题讨论】:

    标签: function f# member


    【解决方案1】:

    您需要插入一个自我标识符。由于某些性能原因,默认情况下不这样做。

    以下作品:

    type MyClass() as this =
        let someVar = this.MyMember()
    
        member this.MyMember() :unit = ()
    

    【讨论】:

    • “由于某些性能原因,默认情况下不会这样做”......这很有趣,您能否详细说明或提供解释原因的参考资料?
    • @Asik - 我不知道为什么,但这里有一些相关代码和它生成的警告type t() as self = class end;; stdin(2,13): warning FS1183: The recursive object reference 'self' is unused. The presence of a recursive object reference adds runtime initialization checks to members in this and derived types. Consider removing this recursive object reference.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 2022-01-03
    • 1970-01-01
    相关资源
    最近更新 更多